struts2---获取参数的三种方式

struts2---获取参数的三种方式(以简单的登录为例)

第一种:使用getter/setter方法
    弊端:如果有多个属性,就要在action类中写多个,并生成多个getter/setter方法,显得繁杂。
步骤:
1.在MyEclipse环境下新建一个web project,命名为struts-parameter
2.引入struts支持(导入struts所需要的Jar包) --MyEclipse--project Facets--Install Apache Struts 2.x Facet
   一切都是默认选项,下一步进行
  会发现项目下多了一个Struts 2.1 Liberies,在src目录下多了一个struts.xml配置文件
3.在WebRoot下新建一个login.jsp
<body>
	<center>
		<form action="/struts-paramter/user/login.action" method="post">
			<h1>用户登录</h1>
			用户名:<input name="username" /><br>
			<br> 密   码:<input type="password" name="password" /><br />
			<br> <input type="submit" value="登录">
		</form>
	</center>
</body>
4.配置struts.xml文件
<struts>
	<package name="user"  namespace="/user" extends="struts-default">
		<action name="login" class="com.etc.action.UserAction" method="login">
			<result>/success.jsp</result>
			<result name="error">/error.jsp</result>
		</action>
	</package>
</struts> 
5.在src下新建com.etc.action包,在包下新建UserAction.java
package com.etc.action;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport{
	private static final long serialVersionUID = 2557752459219813370L;
	private String username;
	private String password;
	/**
	 * Description:用户登录方法
	 * @return
	 * @author zoey
	 * @date 2017年7月18日
	 */
	public String login(){
		if(username.equals("zoey") && password.equals("zoey")){
			return Action.SUCCESS;
		}else{
			return Action.ERROR;
		}
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
}
6.在WebRoot下新建success.jsp和error.jpa页面
   success.jsp
<body>
   登录成功!
</body>
 error.jsp
<body>
   用户名或密码错误!
</body>
7.运行:http://localhost:8080/struts-paramter/login.jsp,进入登录页面


8.在登录页面输入相应的数据,如果用户名和密码都正确,跳转到success.jsp页面, 否则跳转到error.jsp页面



第二种:使用域模型(常用)
(相对于第一种方法判断代码是否改变)
1.还是在struts-pramater项目下进行:
2.WebRoot下新建login2.jsp中代码如下:
<body>
	<center>
		<form action="/struts-paramter/user/login2.action" method="post">
			<h1>用户登录</h1>
			用户名:<input name="user.username" /><br>
			<br> 密   码:<input type="password"
				name="user.password" /><br />
			<br> <input type="submit" value="登录">
		</form>
	</center>
</body>
3.配置struts.xml文件如下:
<struts>
	<package name="user"  namespace="/user" extends="struts-default">
		<action name="login2" class="com.etc.action.UserAction2" method="login">
			<result>/success.jsp</result>
			<result name="error">/error.jsp</result>
		</action>
	</package>
</struts> 
4.新建一个com.etc.vo包,在包下新建一个User.java
package com.etc.vo;
public class User {
	private String username;
	private String password;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
}

5.com.etc.action下新建UserAction2,代码如下:
package com.etc.action;

import com.etc.vo.User;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;

public class UserAction2 extends ActionSupport{
	private static final long serialVersionUID = 2557752459219813370L;
	private User user;
	/**
	 * Description:用户登录方法
	 * @return
	 * @author zoey
	 * @date 2017年7月18日
	 */
	public String login(){
		if(user.getUsername().equals("zoey") && user.getPassword().equals("zoey")){
			return Action.SUCCESS;
		}else{
			return Action.ERROR;
		}
	}
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}	
}
运行:http://localhost:8080/struts-paramter/login2.jsp,进入登录页面
输入用户名和密码之后,进入相应的成功或者失败页面。结果如上。

第三种方法----模型驱动(了解)

1.还是在struts-paramter项目下进行:
2.WebRoot下新建login3.jsp页面:(和第一种方式相同)
<body>
	<center>
		<form action="/struts-paramter/user/login3.action" method="post">
			<h1>用户登录</h1>
			用户名:<input name="username" /><br>
			<br> 密   码:<input type="password" name="password" /><br />
			<br> <input type="submit" value="登录">
		</form>
	</center>
</body>
3.配置struts.xml文件:
<struts>
	<package name="user"  namespace="/user" extends="struts-default">
		<action name="login3" class="com.etc.action.UserAction3" method="login">
			<result>/success.jsp</result>
			<result name="error">/error.jsp</result>
		</action>
	</package>
</struts>  
4.com.etc.action下新建UserAction3.java
package com.etc.action;
import com.etc.vo.User;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class UserAction3 extends ActionSupport implements ModelDriven<User>{
	private static final long serialVersionUID = 2557752459219813370L;
	private User user = new User();
	@Override
	public User getModel() {
		return user;
	}
	public String login(){
		if(user.getUsername().equals("zoey") && user.getPassword().equals("zoey")){
			return Action.SUCCESS;
		}else{
			return Action.ERROR;
		}
	}
}
运行:http://localhost:8080/struts-paramter/login3.jsp,运行结果如上。


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值