`
peizhiinfo
  • 浏览: 1426674 次
文章分类
社区版块
存档分类
最新评论

【郭林专刊】Struts2三种传参方式(从jsp页面传到Action) .

 
阅读更多

多的不说,直接上代码;

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>&nbsp;</td>
</tr>
<tr>
<td>密 码</td>
<td><input type="text" name="pass"></td>
<td>&nbsp;</td>
</tr>
<tr>
<td><input type="submit" value="sure" ></td>
<td><input type="reset" value="reset" ></td>
<td>&nbsp;</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>&nbsp;</td>
</tr>
<tr>
<td>密 码</td>
<td><input type="text" name="user.pass"></td>
<td>&nbsp;</td>
</tr>
<tr>
<td><input type="submit" value="sure" ></td>
<td><input type="reset" value="reset" ></td>
<td>&nbsp;</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>&nbsp;</td>
</tr>
<tr>
<td>密 码</td>
<td><input type="text" name="pass"></td>
<td>&nbsp;</td>
</tr>
<tr>
<td><input type="submit" value="sure" ></td>
<td><input type="reset" value="reset" ></td>
<td>&nbsp;</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;
}

}

分享到:
评论

相关推荐

    单分散性钴铁氧体纳米粒子的研究进展

    单分散性钴铁氧体纳米粒子的研究进展,王志成,郭林,钴铁氧体纳米磁性粒子具有良好的物理化学性能,因此其相关合成备受关注。本文总结了钴铁氧体纳米粒子的制备方法,如化学共沉淀法

    小尺寸、单分散Cd

    采用改进高温热分解法合成了Cd2+掺杂NaLuF4∶Yb, Er纳米晶体,研究了Cd2+对晶相形成和发光强度的影响,采用CASTEP计算不同掺杂浓度下β-NaLuF4∶Yb, Er的形成能。在掺杂浓度为6mol%时合成的纳米晶荧光强度最强,其相较...

    Android布局ListView下拉刷新demo

    android中数据的更新需要用户很方便就能操作,其中下拉刷新就是很好的一种用户体验方式,这是郭林大神在网上的一个下拉刷新的demo,我做了一点小小的修改,然后加了一下注释,方便大家参考。

    Android大屏幕适配demo

    Android大屏幕适配demo,这个是仿照郭林文章中的例子,他的例子是用eclipse写的,直接运行会不兼容最新的sdk,我改成了AndroidStudio可以直接运行的demo.郭林此代码文章的连接 ...

    Android photoWallDemo

    仿照郭林博客http://blog.csdn.net/guolin_blog/article/details/34093441写的demo,androidStudio版本,他下载的链接是eclipse的代码,在高版本的AndroidStudio运行会不方便

    论文研究-基于评论对象的新闻影响力预测算法 .pdf

    基于评论对象的新闻影响力预测算法,魏忠祥,郭林,近年来网络媒体对社会的影响力越来越大,能够定量地分析预测新闻事件的影响力显得尤为重要。目前一些研究都只是针对新闻的点击量

    八面体中空银纳米笼的高效合成及其表面增强拉曼性能研究

    八面体中空银纳米笼的高效合成及其表面增强拉曼性能研究,黄凤琴,郭林,以八面体Cu2O为模板,柠檬酸钠作为保护剂,NaBH4和AgNO3反应产生的银纳米颗粒在模板表面沉积形成银包覆氧化亚铜的核壳结构,最后用乙�

    论文研究-小波去噪的低信噪比直扩信号扩频码盲估计算法 .pdf

    小波去噪的低信噪比直扩信号扩频码盲估计算法,郭林,吕明,本文针对低信噪比直扩信号扩频码的盲估计问题,提出了利用小波降噪的方法对直扩信号进行预处理,然后再分别运用特征值分解算法、

    PVP高分子包覆的镍纳米材料的形态控制研究

    PVP高分子包覆的镍纳米材料的形态控制研究,周苇,郭林,本文报道了辅以PVP(聚乙烯吡咯烷酮)修饰水合肼还原二价镍盐制备镍的纳米材料。通过改变镍盐与PVP的摩尔浓度比、回流温度、盐的种

    学习见证消息推送时刻笔记

    学习郭林老师的见证消息推送时刻笔记,笔记未整理有点乱,有很多不足,希望大家指点,源代码随后上传

    VolleyDemo

    这个是参考网上的资料,结合google官方的文档写的一个volley的简单demo,并做了简单的封装,想更加系统的学习volley可以参考google官方文档以及郭林的博客

    温度应力下海底管线水平屈曲分析

    温度应力下海底管线水平屈曲分析,刘润,郭林坪,温度应力下海底管线的屈曲大变形是管线设计中所要考虑的关键问题之一。以某实际工程为背景,应用理想平直管线发生水平向屈曲的解

    Synthesis of Ni Net-like Nanomaterials and Their Magnetic Properties

    丝网状镍纳米材料的合成与磁学性质研究,周苇,郭林,以高聚物为软模板,利用温和的湿化学法合成了丝网状镍纳米材料。利用扫描电镜、高分辨透射电镜及X射线衍射仪对样品进行了表征分�

Global site tag (gtag.js) - Google Analytics