我是struts的新手,正在学习它。我的问题是 struts 如何将请求参数与动作实例变量映射。例如,我有一个使用用户名和密码的登录表单。现在它向 LoginAction 发送请求。此操作类如何在用户名实例变量中获取用户名,在密码变量中获取密码。在 servlet 中,我们使用request.getParameter()
方法并将值分配给特定的变量。
问问题
1709 次
3 回答
2
在我们使用的 struts2 中Interceptor
,在这种情况下 struts2 将使用param
拦截器为您设置参数,您只需配置您的拦截器堆栈(或者您只需使用默认堆栈)。这里是Interceptor的链接,如果你对 struts2 很陌生,就使用默认配置来感受一下。
例子:
<s:form action="my-action">
<s:textfield name="myField"/>
<s:submit/>
</s:form>
和
动作类:
public class MyActionClass extends ActionSupport{
private String myField; // getter and setter
public String execute() throws Exception{
return "success";
}
}
配置:
<package name="default" extends="struts-default">
<action name="my-action" class="MyActionClass">
<result>success.jsp</result>
</action>
</package>
在这种情况下myField
将由拦截器自动设置。
于 2012-09-13T07:39:20.037 回答
1
Struts 会为您映射参数。这就是为什么使用框架可以节省您的时间和精力的部分原因,因为您不必手动从request
.
Struts 通过调用自动将请求参数映射username
到username
您的操作类的成员setUsername
。
另请参阅struts 教程
于 2012-09-13T07:36:39.110 回答
1
Struts2 使用一组拦截器为您完成繁重的工作,这意味着在您的 Action 方法执行时,您将获得所有需要的数据来处理。
为了将数据从 JSP 传输到动作类 Struts2 使用拦截器名称parameters-interceptor,您只需在动作类中创建与 JSP 字段名称相同的属性,S2 将转换数据并填充字段你。
因此,如果您的 JSP 有两个名称为 say 的字段,userName
那么password
您需要在动作类中使用 getter 和 setter 定义这些字段,例如
public class MyAction extends ActionSupport{
private String userName;
private String password
//getter ans setter
public String execute() throws Exception{
// do what yoou want
}
}
于 2012-09-13T07:36:59.067 回答