Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > struts. Реализация метода LookupDispatchAction.


Автор: 1sanek1 18.9.2015, 12:19
Добрый день!
 
У меня возникла следующая сложность:
Есть кнопка
Код

 <html:submit property="method" styleClass="VhodButton">
            <bean:message key="myapp.submit.button.inUser"/>
 </html:submit>

Есть action 
Код

<action path="/User" type="ru.struts.menu.action.UserAction" parameter="method" name="loginForm" score="session" input="/jsp/registraciy.jsp">
   <forward name="success" path="/jsp/registraciy.jsp" /> 
 </action>

А так же реализация класса который наследует свойства LookupDispatchAction
Код

...
public class UserAction extends LookupDispatchAction{
....
public ActionForward inUser(ActionMapping mapping, ActionForm  form,
            HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException {
    ....
    return mapping.findForward("success");
   }
...
protected Map<String, String> getKeyMethodMap() {
        Map<String, String> map = new HashMap<String, String>();
        map.put("myapp.submit.button.inUser", "inUser");
        map.put("myapp.submit.button.inUser", "inUserDocument");
        map.put("myapp.submit.button.saveUserForm", "saveUserForm");
        return map;
    }
}

Ну и конечно ApplicationResources.properties где указано
 
Код

myapp.submit.button.inUser=inUser
 

Выяснил с помощью проб и ошибок, что имя кнопки возвращает myapp.submit.button.inUser=inUser и это логичная реализация этого я и ожидаю увидеть. Но в то же время это же значение,  как я понимаю, присваивается параметру method. То есть в моем случае все работает, ищется метод inUser, но я хочу сделать кнопку с русским именем, например
myapp.submit.button.inUser=далее - только в Unicode
Но получается не могу, тк получаю ошибку Action [/User] missing ressing in key method map
 
Подскажите, пожалуйста, как обойти эту ошибку. Изначально какая то странная реализация.

Автор: 1sanek1 18.9.2015, 17:24
Решил проблему используя DispatchAction, там аналогичная хрень, но я сделал так: 
Код

<html:hidden property="method" value="inUser"/>
...
<html:submit styleClass="VhodButton">
Продолжить
</html:submit>

По мне сделано немного криво работа по данному методу

Автор: 1sanek1 21.9.2015, 10:50
А все так решают эту проблему? Или есть более красивое решение?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)