Struts 往jsp页面传值的三种方式 以及获取Jsp页面值得一种方式

来源:互联网 发布:生活中的大面积数据 编辑:程序博客网 时间:2024/05/16 09:31

//传值的的第一种方式直接在action中getset方法完成值的传递

第一种方法值是放在值栈valuestack中其余两种是放在actioncontext中

this.setName("Damon");
this.setPass("123");

//第二种方式通过ActionContext完成值得传递
  ActionContext.getContext().put("aaa",123456);
  ActionContext.getContext().put("bbb",78910);

//第三种的传值方式Servlet api来传值
  //这里一定要记得加入servlet api.jar这个包否则会报错 在tomcat lib 目录下
  //这里一样是把之放到actioncontext 但是这里在Jsp页面获取要通过request.***来获取
  ServletActionContext.getRequest().setAttribute("hello","Jack");

 

如果要获取jsp传过来的值只要acton中有get方法即可但是要注意比如setName 这里传过来的参数必须叫做name

UserActon

package com.bnuep.action;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;

public class UserAction {

 String name;
 String pass;

 public String add() {
  System.out.println("add");
  return "r_list";
 }

 public String addInput() {
  //获取Jsp传过来的值这里是通过getName这个方法来传值所以必须要有get方法
  System.out.println(name + "  " + pass);
  return "success";
 }

 public String getName() {
  return name;
 }

 public String getPass() {
  return pass;
 }

 public String list() {
  //传值的的第一种方式直接在action中getset方法完成值的传递
  this.setName("Damon");
  this.setPass("123");
  System.out.println("list");
  //第二种方式通过ActionContext完成值得传递
  ActionContext.getContext().put("aaa",123456);
  ActionContext.getContext().put("bbb",78910);
  //第三种的传值方式Servlet api来传值
  //这里一定要记得加入servlet api.jar这个包否则会报错 在tomcat lib 目录下
  //这里一样是把之放到actioncontext
  ServletActionContext.getRequest().setAttribute("hello","Jack");
  return "success";
 }

 public String select() {
  System.out.println("select");
  return "success";
 }

 public void setName(String name) {
  this.name = name;
 }

 public void setPass(String pass) {
  this.pass = pass;
 }
}
list.xml

<%@ page language="java" contentType="text/html; charset=GB18030"
 pageEncoding="GB18030"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
 <br> list ${name}------${pass}
 <s:property value="name" />
 ----------------------------
 <s:property value="pass" />
 <hr/>
 ${aaa}------${bbb}
 
 <!--使用s:property来访问actioncontext中的数据都需要加#号在struts2.3之后
 如果actioncontext的值是string类型就不用加#号 但是在项目开发中一定要加 #号-->
 
 <s:property value="#aaa" />
 ----------------------------
 <s:property value="#bbb" />
 
 ${hello}
 <s:property value="#request.hello"/>
 <s:debug></s:debug>
 <br>
</body>
</html>

0 0
原创粉丝点击