struts2前后台传值的三种方法
原文地址: http://laokaddk.blog.51cto.com/368606/1340816
多的不说,直接上代码;
struts.xml代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="login" namespace="/user" extends="struts-default">
<action name="*_*" class="com.wepull.struts2.action.{1}Action"
method="{2}">
<result name="success">{1}_{2}.jsp</result>
<result name="input">User_toLogin.jsp</result>
</action>
</package>
</struts>
第一种传参方式:
import com.opensymphony.xwork2.ActionSupport;
/**
* Struts2三种传参方式(从jsp页面传到Action)
*
* 方式一:直接在action中写属性,然后写set、get方法
* 1.在Action里添加属性,属性名要对应jsp上的属性名
* 2.添加相应的set方法
*
*/
public class UserAction extends ActionSupport {
private String name;
private String pass;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
public String doLogin(){
String forward="input";
//System.out.println(name+" "+pass);
if("wepull".equalsIgnoreCase(name)&&"123".equalsIgnoreCase(pass)){
return SUCCESS; //登录成功,返回成功页面
}else{
return forward; //登录失败,返回重新登录
}
}
public String toLogin(){
return SUCCESS; //进入登录页面
}
}
------------------------------------------------------------------------------------------------------------------------------
User_toLogin.jsp页面:
<form action="user/User_doLogin">
<table>
<tr>
<td>用户名</td>
<td><input type="text" name="name"></td>
<td> </td>
</tr>
<tr>
<td>密 码</td>
<td><input type="text" name="pass"></td>
<td> </td>
</tr>
<tr>
<td><input type="submit" value="sure" ></td>
<td><input type="reset" value="reset" ></td>
<td> </td>
</tr>
</table>
</form>
##########################################################################
第二种传参方式:
import com.opensymphony.xwork2.ActionSupport;
/**
* Struts2三种传参方式(从jsp页面传到Action)
*
* 方式二:把属性封装到dto中,传值时以dto名字.其中属性
* 1.在Action里添加属性,属性名要对应jsp上的属性名
* 2.添加相应的set方法
*
*/
public class UserAction extends ActionSupport {
private UserDTO user;
public UserDTO getUser() {
return user;
}
public void setUser(UserDTO user) {
this.user = user;
}
public String doLogin(){
String forward="input";
//System.out.println(user.getName()+" "+user.getPass());
if("wepull".equalsIgnoreCase(user.getName())&&"123".equalsIgnoreCase(user.getPass())){
return SUCCESS;
}else{
return forward;
}
}
public String toLogin(){
return SUCCESS;
}
}
------------------------------------------------------------------------------------------------------------------------------
UserDTO.java代码
public class UserDTO {
private String id;
private String name;
private String pass;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
}
------------------------------------------------------------------------------------------------------------------------------
User_toLogin.jsp页面:
<form action="user/User_doLogin">
<table>
<tr>
<td>用户名</td>
<td><input type="text" name="user.name"></td>
<td> </td>
</tr>
<tr>
<td>密 码</td>
<td><input type="text" name="user.pass"></td>
<td> </td>
</tr>
<tr>
<td><input type="submit" value="sure" ></td>
<td><input type="reset" value="reset" ></td>
<td> </td>
</tr>
</table>
</form>
##########################################################################
第三种传参方式:
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
/**
* Struts2三种传参方式(从jsp页面传到Action)
*
* 方式三:实现ModelDriven
* 实现ModelDriven接口
*
*/
public class UserAction extends ActionSupport implements ModelDriven<UserDTO>{
private UserDTO user;
public UserDTO getUser() {
return user;
}
public void setUser(UserDTO user) {
this.user = user;
}
public String doLogin(){
String forward="input";
//System.out.println(user.getName()+" "+user.getPass());
if("wepull".equalsIgnoreCase(user.getName())&&"123".equalsIgnoreCase(user.getPass())){
return SUCCESS;
}else{
return forward;
}
}
public String toLogin(){
return SUCCESS;
}
public UserDTO getModel() {
if(user==null){
user=new UserDTO();
}
return user;
}
}
------------------------------------------------------------------------------------------------------------------------------
User_toLogin.jsp页面:
<form action="user/User_doLogin">
<table>
<tr>
<td>用户名</td>
<td><input type="text" name="name"></td>
<td> </td>
</tr>
<tr>
<td>密 码</td>
<td><input type="text" name="pass"></td>
<td> </td>
</tr>
<tr>
<td><input type="submit" value="sure" ></td>
<td><input type="reset" value="reset" ></td>
<td> </td>
</tr>
</table>
</form>
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
另外,在介绍一种通过HttpServletRequest request 传参方式
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
/**
* 获取request参数的方式
*HttpServletRequest request 传参方式
*
*/
public class UserAction extends ActionSupport{
public String doLogin(){
//获取request对象
HttpServletRequest request=ServletActionContext.getRequest();
//获取session对象
//HttpSession session=request.getSession();
String name=request.getParameter("name");
String pass=request.getParameter("pass");
String forward="input";
if("wepull".equalsIgnoreCase(name)&&"123".equalsIgnoreCase(pass)){
return SUCCESS;
}else{
return forward;
}
}
public String toLogin(){
return SUCCESS;
}
}
struts2前后台传值的三种方法的更多相关文章
- MVC控制器向View视图传值的三种方法
首先创建一个MVC的项目,其中需要一个控制器(TestController),三个视图(index,edit,detail) 1.项目结构如下:
- React Router v4 页面传值的三种方法
传值方法 1.props.params 使用React router定义路由时,我们可以给指定一个path,然后指定通配符可以携带参数到指定的path: <Route path='/user/: ...
- struts2开发action 的三种方法以及通配符、路径匹配原则、常量
struts2开发action 的三种方法 1.继承ActionSupport public class UserAction extends ActionSupport { // Action中业务 ...
- jsp值传到后台Struts2中的action三种方法
Action接收表单传递过来的参数有3种方法: 如,登陆表单login.jsp: <form action="login" method="post" n ...
- javascript静态页面传值的三种方法分享
一:JavaScript静态页面值传递之URL篇能过URL进行传值.把要传递的信息接在URL上.Post.htm 复制代码 代码如下: <input type="text" ...
- iOS UI-界面传值(三种方法)
#import <Foundation/Foundation.h> @interface DataModel : NSObject @property (nonatomic, copy) ...
- Asp.Net MVC向视图View传值的三种方法
本文将总结Asp.Net MVC向视图View传值的三种常见的方法: ----------------------------------------------------------------- ...
- ASP.NET MVC 控制器向View传值的三种方法
转自:http://www.cnblogs.com/shinima/p/3940452.html 1.提供视图模型对象 你能把一个对象作为View方法的参数传递给视图. public ViewResu ...
- MVC-控制器向View传值的三种方法
1.提供视图模型对象 你能把一个对象作为View方法的参数传递给视图. public ViewResult Index() { DateTime date = DateTime.Now; return ...
随机推荐
- 编辑器:IDE(深坑不填)
http://top.jobbole.com/37542/ Facebook 和 GitHub 两大巨头联手推出 Atom-IDE 2017-9-22 https://www.zhihu.com/qu ...
- zookeeper(1)初识zookeeper
一.zookeeper的安装 1.下载zookeeper(当然在安装zookeeper之前得先装好jdk,这里就不说了),版本自己随便选一个(后面我再说版本的问题),点击这里下载. 2.然后在usr下 ...
- spark 运行架构
spark 运行架构基本由三部分组成,包括SparkContext(驱动程序),ClusterManager(集群资源管理器)和Executor(任务执行过程)组成. 其中SparkContext负责 ...
- js 定义一个对象并且给对象赋值方法
var obj={}; obj.a="12"; obj.b="13" var o ={}; o.jsonObj=obj; 取得属性值直接用 obj.a; ob ...
- Oracle部署安装
1.用户有数据库服务器则不需要安装Oracle服务器端,若没有需要安装 https://jingyan.baidu.com/article/363872eccfb9266e4aa16f5d.html ...
- AJax知识介绍
参考:http://www.runoob.com/ajax/ajax-asp-php.html
- zookeeper 入门知识
作为开启分布式架构的基石,除了必会还有的选么 自己的一些理解,有错误的话请一定要给予指正! 一.是什么? 分布式数据一致性的解决方案. 二.有什么用 数据的发布/订阅(配置中心) . 负载均衡(du ...
- 关于malloc(0)的返回值问题--这两天的总结与实践篇
就像我在http://www.cnblogs.com/wuyuegb2312/p/3219659.html 文章中评论的那样,我也碰到了被提问这个malloc(0)的返回值问题,虽然感觉这样做在实际中 ...
- python实现根据文件关键字进行切分为多个文件
来源:在工作过程中,需要统计一些trace信息,也就是一些打点信息,而打点是通过关键字进行的,因此对一个很大的文件进行分析时,想把两个打点之间的内容单独拷贝出来进行分析 #!/usr/bin/env ...
- 用工厂模式和策略模式优化过多的if-else
多个if-else代码: @RunWith(SpringRunner.class) @SpringBootTest public class EducationalBackgroundTest { p ...