Java 在bean-in-action类中存储表单值
假设我们有这样一个JSP:Java 在bean-in-action类中存储表单值,java,jsp,struts2,Java,Jsp,Struts2,假设我们有这样一个JSP: <s:form action="MyActionClass" namespace="/sec"> <s:hidden name="userId" value="%{userId}" <s:textfield name="name" value="%{name}" label="Name" /> <s:textfield name="location" value="%{location}" label="Lo
<s:form action="MyActionClass" namespace="/sec">
<s:hidden name="userId" value="%{userId}"
<s:textfield name="name" value="%{name}" label="Name" />
<s:textfield name="location" value="%{location}" label="Location" />
</s:form>
public class MyActionClass extends ActionSupport {
private String userId;
private String name;
private String location;
//getters and setters
}
这很好用,我在提交表单时从jsp获取操作字段中的值。我想做的是创建另一个bean类,将字段放在该bean类中,将bean类声明为action类的属性并填充其字段。像这样的
public class MyActionClass extends ActionSupport {
private UserDTO user;
//getters and setters
}
public class UserDTO{
private String userId;
private String name;
private String location;
public UserDTO(){
}
//getters and setters
}
UserDTO类如下所示
public class MyActionClass extends ActionSupport {
private UserDTO user;
//getters and setters
}
public class UserDTO{
private String userId;
private String name;
private String location;
public UserDTO(){
}
//getters and setters
}
我尝试过这样做:
<s:form action="MyActionClass" namespace="/sec">
<s:bean name="com.actions.DTOs.UserDTO" var="user">
<s:hidden name="user.userId" value="%{user.userId}"
<s:textfield name="user.name" value="%{user.name}" label="Name" />
<s:textfield name="user.location" value="%{user.location}" label="Location" />
</s:bean>
</s:form>
试试这个:
您的表单jsp:
<s:form action="MyActionClass" namespace="/sec">
<s:textfield name="user.userId" value="" label="UserId" />
<s:textfield name="user.name" value="" label="Name" />
<s:textfield name="user.location" value="" label="Location" />
<s:submit/>
</s:form>
MyActionClass.java:
public class MyActionClass extends ActionSupport implements ModelDriven<UserDTO>{
private UserDTO user;
public UserDTO getUser() {
return user;
}
public void setUser(UserDTO user) {
this.user = user;
}
@Override
public String execute() throws Exception {
return SUCCESS;
}
}
公共类MyActionClass扩展ActionSupport实现模型驱动{
私人用户对用户;
public UserDTO getUser(){
返回用户;
}
公共void setUser(UserDTO用户){
this.user=用户;
}
@凌驾
公共字符串execute()引发异常{
回归成功;
}
}
struts.xml配置:
<struts>
<constant name="struts.devMode" value="true"></constant>
<package name="mypackage" namespace="/sec" extends="struts-default">
<action name="actionWhichResultsToYourFormJSPHere">
<result>yourFormJspHere.jsp</result>
</action>
<action name="MyActionClass" class="sec.MyActionClass">
<result name="success">/result.jsp</result>
</action>
</package>
</struts>
yourFormJspHere.jsp
/result.jsp
您的result.jsp:
<body>
id=${user.userId}<br>
name=${user.name}<br>
location=${user.location}<br>
</body>
id=${user.userId}
name=${user.name}
位置=${user.location}
bean类中的属性值将作为可能的副本返回