2012.09.10 02:52更新:这里有一个更麻烦的例子,是自己刚学struts2时写的,使用了ModelDriven<E>接口,感兴趣的可以下载下来参考一下。
下载地址:http://download.youkuaiyun.com/detail/kaulctin/4559588
---分割线---
在Servlet中,参数传递依靠在request, session, application等对象中插件参数,或者依靠jsp:param,比较麻烦。在struts2中,只需在Java类中设置getXXX(), setXXX()方法就可以在Java类中与显示页面间便捷的传递参数了,如果实现ModelDriven<E>接口,则可让传递的参数更加规范。
例:有一登录页面为login.jsp,body内容如下:
<%@ taglib prefix="s" uri="/struts-tags" %>
<s:form name="frm" action="login_do" method="post">
<s:textfield name="name" label="用户"/>
<s:password name="pwd" label="密码"/>
<s:submit value="登录"/>
</s:form>
在struts.xml中配置Action如下:
<action name="login_do" class="com.study.ImpDao.Imp" method="login">
<result name="success">main.jsp</result>
<result name="error">error.jsp</result>
</action>
public void setName(String name){
this.name = name;
}
public void setPwd(String pwd){
this.pwd = pwd;
}
public String login(){
System.out.println(name);
System.out.println(pwd);
return "success";
}
当用户在login.jsp中点击“登录”按钮提交表单后,便会在后台console中打印出传递过来的name, pwd两个参数值。然后服务器端将main.jsp页面响应给用户,如果在main.jsp中继续使用name, pwd的值,则需要在Imp类中写入getXXX()方法,格式如下:
public String getName(){
return this.name;
}
public String setPwd(){
return this.pwd;
}
设定main.jsp主体内容如下:
<%@ taglib prefix="s" uri="/struts-tags" %>
<p>用户名:<s:property value="name"/>
<p>密码:<s:property value="pwd"/>
<!-- 这里也可以用request对象获得参数的方法获得该两个参数 -->
<%=request.getParameter("name")%>
<%=request.getParameter("pwd")%>
便可以显示出白提交的两个参数啦!
实际效果:
1 登录页面
2 点击登录提交表单后,控制台输出
3 Java类返回success跳转到main.jsp并呈现给用户页面