gpt4 book ai didi

java - 将表单值存储在操作类的 bean 中

转载 作者:行者123 更新时间:2023-11-30 03:40:56 25 4
gpt4 key购买 nike

假设我们有一个像这样的 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="Location" />
</s:form>

还有一个像这样的 Action 类:

public class MyActionClass extends ActionSupport {
private String userId;
private String name;
private String location;
//getters and setters
}

这工作正常,我在提交表单时从 jsp 获取操作字段中的值。我想做的是创建另一个 bean 类,将字段放入该 bean 类中,将 bean 类声明为操作类的属性并填充其字段。像这样的东西。

public class MyActionClass extends ActionSupport {
private UserDTO user;
//getters and setters
}

UserDTO 类如下所示。

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;
}

}

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>

您的结果.jsp:

<body>
id=${user.userId}<br>
name=${user.name}<br>
location=${user.location}<br>
</body>

关于java - 将表单值存储在操作类的 bean 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26839107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com