[struts] struts2中Java类与jsp显示页面之间的值传递

来源:互联网 发布:豫章书院知乎 编辑:程序博客网 时间:2024/05/21 19:44

2012.09.10 02:52更新:这里有一个更麻烦的例子,是自己刚学struts2时写的,使用了ModelDriven<E>接口,感兴趣的可以下载下来参考一下。

下载地址:http://download.csdn.net/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>


在Imp类中有String型变量name, pwd,以及setXXX()方法以便获得从网页传递过来的参数
public void setName(String name){this.name = name;}public void setPwd(String pwd){this.pwd = pwd;}


这样就可以在login_do这个Action调用的方法login中使用传递的值了。为简便,设定login()如下:

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并呈现给用户页面





原创粉丝点击