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

本文介绍了在Struts2框架下,如何通过Java类与JSP页面之间便捷地传递参数。通过设置get和set方法,以及实现ModelDriven接口,可以实现登录表单的提交,服务器端接收并打印参数,然后将带有参数值的页面响应给用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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>


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





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值