Struts的取值与标签

首先,我们都知道,在struts2中有一个valuestack。里面存放的就是action里的属性。同时,还有一个stackcontext,里面放的是map形式的request/session/attr/application。

在取值的时候

valuestack中的值

<s:property value="user.name">

或在任意的<s:/>标签内使用%{}       (记得这个 在s标签内部 就得使用%{}  )

stackcontext中的值

<s:property value="。attr.user.name">  (此时在request/session/attr/application中应该有一个user)

使用attr是在你自己也不知道user这个数据是放在request/session还是别的什么里。

再说说struts里的if

官方给出的指导里面 例子很简单

<s:if test="%{false}">
    <div>Will Not Be Executed</div>
</s:if>
<s:elseif test="%{true}">
    <div>Will Be Executed</div>
</s:elseif>
<s:else>
    <div>Will Not Be Executed</div>
</s:else>

屏幕上会打印出Will Be Executed

这说明什么,这说明%{}取得值,不一定在valuestack中。

既然说到了strtus的if,我们不妨再看看jstl里面的if

再说jstl的if之前我们先看看EL运算符

jstl的if如下:

下来我们也看看我今天在用if遇到的问题

list是valuestack里面的对象

我想完成的功能是如果 list.getIndex(2).getContent()的内容是入网优先

就让下拉框默认选中入网优先

                            <s:if test="%{list.{content}[2]==入网优先}">
                            <option value="入网优先" selected="selected">入网优先</option>
                            </s:if>
                            <s:else>
                                <option value="入网优先">入网优先</option>
                            </s:else>

上面的代码肯定不能执行喽。为什么?

大家请参考 struts2 if标签示例

换句话说 我的代码应该改成下面的样子

                                <s:if test="%{list.{content}[2]==\"上网优先\"}">
                                    <option value="上网优先" selected="selected">上网优先</option>
                                </s:if>
                                <s:else>
                                    <option value="上网优先">上网优先</option>
                                </s:else>

参考资料

精通javaweb整合开发

http://blog.csdn.net/liehuoliaoyuan/article/details/7426085

http://blog.csdn.net/dlf123321/article/details/28645369

http://hw1287789687.iteye.com/blog/1949722

时间: 2024-12-05 11:37:34

Struts的取值与标签的相关文章

08.16号 dom 节点的创建 和删除DOM表单与非表单取值的方法 和操作属性与操作样式

<html> <head> <meta charset="utf-8"> <title>Dom操作</title> <script type="text/javascript" src="08.16/08.16.js"></script> </head> <body> <!--dom节点添加 删除 ; createElemen 创建一

使用Struts框架的Java Web项目中的两个Session的区别和常见的Session取值为空的错误

我的百度知道回答,感觉这个知识很有意义,专门贴出来. 不过还有待验证的地方,就是 ActionContext.getContext().getSession("name", "Tom"); //如果在JSP中通过 EL 或者 Struts2 标签怎么显示? 以下是回答正文. 很多初学Java Web的同学因为使用 Strut2框架而分不清两个 Session的区别. 1.   JSP/Servlety有个原生的 session 对象,这是9大内置对象中的一个,书上写

struts2标签取值方式

1.标签取值方式一 通过<s:property value="" />取值 当Action的valueStack中有该属性的值时,只需直接使用该属性的名字即可: 当Action的valueStack中没有该属性的值时,比如在session,application范围中的属性值时,需要加#或者#attr.: 例子: 假设某Action中有person成员变量,在application中存在company属性 那么我们可以通过以下方法取值: <s:property val

jquery对strutrs2 &lt;s:radio&gt;标签的设置和取值

今天郁闷了1小时. 需求是这样的: <s:radio  list="#{0:'男',1:'女'}" value="member.sex" id="sex_id" name="member.sex"  listKey="key" listValue="value" onclick="checkSex(this.value)"></s:radio>

html常用标签的取值和赋值操作

我们在html页面当中,面对各种各样的标签,经常需要处理取值和赋值的问题,下面,就把常见的一些html标签元素的取值和赋值操作进行总结整理,以后备用. 1.button:改变button按钮上面的值,比如把确定按钮取消按钮 <button id="btn">确定</button> $("#btn").click(function () { $("#btn").text("取消");//这个是改变按钮上面

转+总结!! 关于jsp页面取值方式

1.      前台往后台传值,通过提交表单,在后台有set,get方法,可以直接取到.如果通过request.getParameter(paramName) 去获取通过会报空指针异常. 其中request是HttpServletRequest的实例.解决的方法是,在后台action类里面定义request的get/set方法.其中get方法要这样写: public HttpServletRequest getRequest() { if (request == null) request =S

Jquery常用操作:checkbox、select取值,radio、checkbox、select选中及其相关

常用Jquery操作:checkbox取值.select取值.radio选中.checkbox选中.select选中及其相关: 1.影藏页面元素 使用jquery真的很方便,比如要控制div的显示与隐藏,一句话就搞定了,请看下面使用说明. $("#id").show()表示display:block, $("#id").hide()表示display:none; $("#id").toggle()切换元素的可见状态.如果元素是可见的,切换为隐藏的

Webform动态创建删除行及后台取值

开发过程中经常碰到许多不确定事项,所以有时需要动态生成新的记录,如图所示,点击新增时新增一条参考记录,点击删除时则删除该记录:第一步,创建一个表格,用hidden记录当前最大行数,添加时则只需复制模板并修改ID(由于lable最终生成的html是span标签,不方便后台取值,所以换成了textbox) <table class="table-bordered" style="width:100%;text-align:center"> <thead

struts2 与 OGNL 表达式,jsp中 利用ognl 在valuestack中取值

在Struts2中,一个请求在最终到达Action的方法之前,Action对象本身会被压入ValueStack(实际上就是放到ValueStack的CompoundRoot中),所以Action对象是CompoundRoot中的一个元素.看下面的代码: public class UserAction { private String username; private Integer age; private boolean valid; //查看用户的详细信息 public String de