我正在使用Javascript动态地将文本框添加到我的jsp页面上的表单中。当该表单提交给某个操作时,我的操作如何获取这些文本框的值? (我正在使用Struts 2,顺便说一句。)在ASP.NET中,我能够在Form.Request / FormCollection中找到它们。有Struts 2等价吗?万分感谢。
答案 0 :(得分:0)
在Struts2中,您可以在表单中创建bean以执行提交值。要创建输入文本框,请使用<s>
标记。例如:
<s:textfield name="loginBean.userName" label="UserName" required="true" />
这里loginBean是传递给jsp页面的bean。 Bean由变量声明和变量的getter-setter组成。
然后在提交表单的后端Java中,您可以访问同一个bean。 在Java中声明getter-setter,然后您可以访问bean的属性。
public LoginBean getLoginBean() {
return loginBean;
}
public void setLoginBean(LoginBean loginBean) {
this.loginBean = loginBean;
}
public String authenticate(){ String username = loginBean.getUserName();
我建议查看开源Struts项目的源代码。
答案 1 :(得分:0)
听起来你正在尝试填充动态列表。为此,您只需在Action类属性名称的末尾使用 [n] 索引语法:
<强> HTML:强>
<input type="text" name="yourCollection[0]" value="first value" />
<input type="text" name="yourCollection[1]" value="second value" />
<input type="text" name="yourCollection[2]" value="third value" />
行动类:
public class YourAction extends Action {
public List<String> yourCollection;
public List<String> getYourCollection(){
return yourCollection;
}
public void setYourCollection(List<String> aCollection){
this.yourCollection = aCollection;
}
}