1、一般是在Action中定义一个成员变量,然后对这个成员变量提供get/set方法,在JSP页面就可以取到这个变量的值了。
  1)在Action中定义成员变量

//定义一个成员变量
private String message;

//提供get/set方法
public String getMessage() {
	return message;
}
public void setMessage(String message) {
	this.message = message;
}


  2)在JSP页面中取值
${message}
或者
<s:property value="message"/>
  2、但是定义的成员变量多了,感觉整个Action的代码就很长了。这个时候可以使用一些Servlet API进行值的存取操作:HttpServletRequest、HttpSession和ServletContext。Struts2对这个三个对象用Map进行了封装,我们就可以使用Map对象来存取数据了。
  1)在Action中存值

ActionContext actionContext = ActionContext.getContext();

//get HttpServletRequest
Map<String,Object> request = (Map) actionContext.get("request");
request.put("a", "a is in request");

//get HttpSession
//Map<String,Object> session = (Map) actionContext.get("session");
Map<String,Object> session = actionContext.getSession();
session.put("b", "b is in session");

//get ServletContext
//Map<String,Object> application  = (Map) actionContext.get("application");
Map<String,Object> application  = actionContext.getApplication();
application.put("c", "c is in application");


  2)在JSP页面上取值
${a}
${b}
${c}
or
${requestScope.a}
${sessionScope.b}
${applicationScope.c}

 

 

 

传值 sql语句查询结果
1: JSON注解 允许我们在JavaScript中异步

/**
	 * 查询结果
	 * @return 查询结果集
	 */
//设置
	private List result;
	@JSON(name="rows")
	public List getResult() {
		return result;
	}
	public void setResult(List result) {
		this.result = result;
	}
//传值
	setResult(query.getResult());
//取值
	url : '<s:url action="myGpsListJsonAction" namespace="/part/comm"></s:url>',
	sortName : 'type_id',
	sortOrder : 'desc',


2:

//传值
	private String commPartType;
	Object o = getSq().querySingle(commPartType,
				Arrays.asList(getKeyId()), true);
	putValue("commPartType", o);
//取值
	var en = actionData.data.commPartType ? actionData.data.commPartType : {};


3: 不用注解     setget

private Long keyId;
	private Map<String, Object> en;
	@ReadFile(path="com/jerehsoft/erp/part/comm/sql/searchA_Test.sql")  //sql查询语句
	private String a_Test;
//传值
	setEn(query.querySingle(getA_Test(), Arrays.asList(getKeyId()), true));
//取值
	var en = actionData.en ? actionData.en : {};

 

jsp 向后台传值

1: URL 传值

var url = '<s:url action="ecSettingsDetail"></s:url>';
	url = concatURL(url,{key:rowData.key});
	window.open(url);
//取值   不用注解
	 private String key;
 public String getKey() {
        return key;
    }    public void setKey(String key) {
        this.key = key;
    }

2: form 提交表单 post