jsp与后台传值
2015-11-03 18:33
543 查看
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
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
相关文章推荐
- jsp 笔记
- [转]JSP或servlet中(以及上传下载文件)中文乱码或不显示的解决方案
- jsp四大内置对象
- JavaScript学习日记5 map和set
- js常用正则表达式
- javascript作用域(整合)
- 代码段:js表单提交检测
- 【详解】Python接收json数据联合java代码解密
- 实现JS复制、粘贴,Chrome/Firefox下可用
- js动画笔记
- js中json字符串转换成json对象
- jsp页面全选操作
- 统一的Json组件和csv下载组件
- 彻底理解JavaScript原型
- json字符串转换为对象,json字符串中含数组
- JavaScript函数,语法,定义方式
- javascript 模块化编程 1
- javascript定义对象写法
- JS之——获取GET参数
- JavaScript基础学习(五)---Math(算数)对象