struts2 或jsp 中Request 怎样获取数据 或者说是怎样封装客户端的数据的??、
5个回答
展开全部
①使用request方式
-----在struts2的action中获得request对象是这样的:
HttpServletRequest request = ServletActionContext.getRequest();
然后通过setAttribute把数据封装到request请求里:
request.setAttribute("flag", "add");
-----在jsp页面,你可以通过getAttribute获取数据:
String flag = (String)request.getAttribute("flag");
或者通过EL表达式获得值:${flag},但是EL表达式不要放在struts2自定义标签里,它不支持;
又或者使用struts2自定义标签获得数据:
<s:if test="#request.flag==xxx">
xxxxxx...
</s:if>
②使用VO
-----在struts2的action中配置与jsp对应的vo对象,类似于struts1的formbean:
private String flag;
public String getFlag() {
return flag;
}
public void setFlag(String flag) {
this.flag = flag;
}
然后直接使用set方法设置到jsp的值
public String execute(){
setFlag("add");
return SUCCESS;
}
随后flag这个值会通过值栈的方式保存
-------在jsp页面使用struts2的标签库可以直接获得Action传来的值:
<s:form id="flagForm" method="post">
<s:property value="flag"/>
当然放到文本框里也可以:
<s:textfield name="flag" id="flag"></s:textfield>
</s:form>
至于从客户端发送值到后台,就可以通过form表单传回去,如上面的例子,如果名为flag的文本框的值被修改,然后你提交flagForm表单,在后台Action中用getFlag()即可获得jsp传过来的值
-----在struts2的action中获得request对象是这样的:
HttpServletRequest request = ServletActionContext.getRequest();
然后通过setAttribute把数据封装到request请求里:
request.setAttribute("flag", "add");
-----在jsp页面,你可以通过getAttribute获取数据:
String flag = (String)request.getAttribute("flag");
或者通过EL表达式获得值:${flag},但是EL表达式不要放在struts2自定义标签里,它不支持;
又或者使用struts2自定义标签获得数据:
<s:if test="#request.flag==xxx">
xxxxxx...
</s:if>
②使用VO
-----在struts2的action中配置与jsp对应的vo对象,类似于struts1的formbean:
private String flag;
public String getFlag() {
return flag;
}
public void setFlag(String flag) {
this.flag = flag;
}
然后直接使用set方法设置到jsp的值
public String execute(){
setFlag("add");
return SUCCESS;
}
随后flag这个值会通过值栈的方式保存
-------在jsp页面使用struts2的标签库可以直接获得Action传来的值:
<s:form id="flagForm" method="post">
<s:property value="flag"/>
当然放到文本框里也可以:
<s:textfield name="flag" id="flag"></s:textfield>
</s:form>
至于从客户端发送值到后台,就可以通过form表单传回去,如上面的例子,如果名为flag的文本框的值被修改,然后你提交flagForm表单,在后台Action中用getFlag()即可获得jsp传过来的值
展开全部
struts2自动按照jsp中的组件名,对应到action中的相同参数名,自动赋值。在action中必须有该参数的setter getter方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关键是action实现RequestAware 接口:
给你一段参考代码:
public class YourAction implements RequestAware{
protected Map<String, Object> request;
@Override
public void setRequest(Map<String, Object> request) {
// TODO Auto-generated method stub
this.request=request;
}
public String execute(){
Object yourReturnData=someThing;
this.request.put("yourReturnDataName",yourReturnData);
return SUCCESS;
}
}
给你一段参考代码:
public class YourAction implements RequestAware{
protected Map<String, Object> request;
@Override
public void setRequest(Map<String, Object> request) {
// TODO Auto-generated method stub
this.request=request;
}
public String execute(){
Object yourReturnData=someThing;
this.request.put("yourReturnDataName",yourReturnData);
return SUCCESS;
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这很简单啊
直接在对应的action中
用String aa=request.getAttribute("aa");
这样就可以拉
呵呵...要给我分拉!
我是第一个给你答的哦
直接在对应的action中
用String aa=request.getAttribute("aa");
这样就可以拉
呵呵...要给我分拉!
我是第一个给你答的哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
放session里
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询