![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
jsp页面java代码中如何获取struts2的返回值
比如我想要把action中的返回变量传到jsp页面的内嵌java代码中,判断是不是SUCCESS,然后进行相关提示。...
比如我想要把action中的返回变量传到jsp页面的内嵌java代码中,判断是不是SUCCESS,然后进行相关提示。
展开
展开全部
清楚action的SUCCESS,ERROR这些返回值的作用不?这些是给struts自己用的,不会传到jsp里。如果你要传到jsp里就只能在action里自己加个String的变量,然后在jsp对这个变量进行判断。比如:
String var;
execute(){
if(){
this.var=SUCCESS
}else{
this.var=ERROR
}
return this.var
}
String var;
execute(){
if(){
this.var=SUCCESS
}else{
this.var=ERROR
}
return this.var
}
更多追问追答
追问
嗯,然后呢?如何在页面中取这个返回变量进行判断?
追答
jsp怎么得到action的变量不会,你纯新手?
展开全部
首先。你的action有问题。
list不应该是方法体里的变量,list需要有get set 方法。这样jsp页面会取不到值。改成下面这样(我就不写get set方法了。你自己加):
public class A extends ActionSupport
{
Private String username;
Private String password;
Private List list ;
username与password相应的get set方法;
public String execute()
{
list = 这里调用了一个java类,到了一LIST类的
//
//请教这里面应该怎么写才能把在上面得到的list类传到jsp页面上去
//成功转到yes.jsp
}
}
在JSP页面的<@page>标签下面加一个
<@ taglib prefix="s" uri="/struts-tags" >标签包(关于这个标签包的配置和使用建议到网上搜索看看),然后
yes.jsp写法。
<s:iterator value="list" id="item">
<s:property value='item'/>
</s:iterator>
这里面item对应着list里的每个元素。
如果item 是对象(如是People对象且People有一个name属性)则可以写成下这样。
<s:iterator value="list" id="item">
<s:property value='#item.name'/>
</s:iterator>
list不应该是方法体里的变量,list需要有get set 方法。这样jsp页面会取不到值。改成下面这样(我就不写get set方法了。你自己加):
public class A extends ActionSupport
{
Private String username;
Private String password;
Private List list ;
username与password相应的get set方法;
public String execute()
{
list = 这里调用了一个java类,到了一LIST类的
//
//请教这里面应该怎么写才能把在上面得到的list类传到jsp页面上去
//成功转到yes.jsp
}
}
在JSP页面的<@page>标签下面加一个
<@ taglib prefix="s" uri="/struts-tags" >标签包(关于这个标签包的配置和使用建议到网上搜索看看),然后
yes.jsp写法。
<s:iterator value="list" id="item">
<s:property value='item'/>
</s:iterator>
这里面item对应着list里的每个元素。
如果item 是对象(如是People对象且People有一个name属性)则可以写成下这样。
<s:iterator value="list" id="item">
<s:property value='#item.name'/>
</s:iterator>
追问
这位仁兄不要没看问题就回答好不?
ctrl+v也别乱来吧???
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
jsp页面java代码总获取struts2的返回值的方式如下:
1.
<%@ page language="java" import="com.opensymphony.xwork2.util.*"%>
ValueStack vs=(ValueStack)request.getAttribute("struts.valueStack");
类型 propertyValue=(类型)vs.findValue("propertyName");
2.
String ww = (String)request.getAttribute("propertyName");
1.
<%@ page language="java" import="com.opensymphony.xwork2.util.*"%>
ValueStack vs=(ValueStack)request.getAttribute("struts.valueStack");
类型 propertyValue=(类型)vs.findValue("propertyName");
2.
String ww = (String)request.getAttribute("propertyName");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我建议你不要在jsp内嵌java代码,这是很不好的习惯。用struts2的标签。
假设action中属性名为propertyname1;
在jsp中这么判断:
<s:if test='%{propertyname1=="SUCCESS"}' >
提示
</s:if>
<s:else>
提示
</s:else>
假设action中属性名为propertyname1;
在jsp中这么判断:
<s:if test='%{propertyname1=="SUCCESS"}' >
提示
</s:if>
<s:else>
提示
</s:else>
追问
嗯,你说的对,我已经改做标签判断了。但是我还是想知道内嵌java代码是如何取得返回值的。
追答
这些属性是存在值栈valueStack里的,所以在jsp的scriptlet中你这样取:
ValueStack vs=(ValueStack)request.getAttribute("struts.ValueStack");
类型 propertyValue=(类型)vs.findValue("propertyName");
注意类型转换
关键是"struts.ValueStack"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
EL表达式可以 OGNL也行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询