您的位置:首页 > 编程语言 > Java开发

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

2016-01-20 10:00 316 查看
//传值的的第一种方式直接在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
4000
>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: