У меня есть класс с именем MyFirstClass
, в котором у меня есть String
переменной и переменной User
следующим образом:Как использовать псевдоним перехватчик для свойств объекта утилита класса в действии
public class MyFirstClass extends ActionSupport implements ModelDriven<User>,Preparable {
User user;
private String nickName;
public void prepare(){
user = new User();
}
public User getModel(){
return user;
}
.........................
........................
}
User
класс имеет String
переменные как userName
и userAge
. Как мой класс действия реализовал интерфейс ModelDriven
, переменные класса User
должны быть установлены по запросу.
У меня есть JSP-файл также, который разработан следующим образом:
<s:form action="index">
<s:actionerror/>
<s:textfield name="myname" label="UserName:">
</s:textfield>
<s:textfield name="myage" label="UserAge:">
</s:textfield>
<s:submit key="submit" name="submit"/>
</s:form>
и struts.xml
разработан, как,
<package name="default" namespace="/" extends="struts-default">
<action name="index" class="com.actionClasses.MyFirstClass">
<param name="aliases">#{'myname':'nickName','myname':user.userName,'myage':user.age}</param>
<interceptor-ref name="alias"/>
<interceptor-ref name="basicStack"/>
<result name="success">/success.jsp</result>
<result name="input">/user.jsp</result>
</action>
</package>
Моя проблема заключается в том, что С именем моих страница JSP текстовых полей не соответствуют именам свойств в классе User
. Я не могу установить параметры запроса, как это, соответствующим свойствам в действии с помощью перехватчика alias
.
userName и userAge не являются свойствами моего класса действий, они принадлежат классу ** User **. Вот почему, выше решение не работает. Как-то иначе ..... ?? – SagarS
да, см. Обновленный. –
Я думаю, что эта строка, ** # {'name': 'userName', 'age': 'userAge'} **, указывает, что если пользователь отправляет страницу, содержащую значения для «name» и «age», тогда эти значения должны попадать в сеттеры «userName» и «userAge» класса дескриптора (MyFirstClass), а не в какой-либо класс bean. В моем сценарии ** MyFirstClass ** является классом действий и ** Пользователь ** является классом bean внутри этого действия ..... Этот soln. все еще не работает. – SagarS