首先,我们都知道,在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>

##################################################################################################

这两天又看了一下这篇文章,觉得用list来放置数据不合适,

<s:if test="%{list.{content}[2]==\"上网优先\"}">
如果list的第二个元素放的是别的信息呢?
所以用map比较合适
<pre name="code" class="html">                                <s:if test="%{resultMap.Fre_policy.content==\"上网优先\"}">
                                    <option value="上网优先" selected="selected">上网优先</option>
                                </s:if>
                                <s:else>
                                    <option value="上网优先">上网优先</option>
                                </s:else>

resultMap是hashmap型的,里面的key包括Fre_policy,而Fre_policy里面有个字段是content



参考资料

精通javaweb整合开发

http://hamlzf.iteye.com/blog/1669490

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

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

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

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

  1. struts2取值

    http://www.cnblogs.com/yangy608/archive/2010/11/23/1885256.html struts2取值 1.标签取值方式一 通过<s:property ...

  2. Jquery 关于span标签的取值赋值用法

    span是最简单的容器,可以当作一个形式标签,其取值赋值方法有别于一般的页面元素. //赋值 $("#spanid").html(value) //取值 $("#span ...

  3. jquery对strutrs2 <s:radio>标签的设置和取值

    今天郁闷了1小时. 需求是这样的: <s:radio  list="#{0:'男',1:'女'}" value="member.sex" id=" ...

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

    我们在html页面当中,面对各种各样的标签,经常需要处理取值和赋值的问题,下面,就把常见的一些html标签元素的取值和赋值操作进行总结整理,以后备用. 1.button:改变button按钮上面的值, ...

  5. 页面传递的都是string ; 每个标签要有name的原因是为了取值 因为传递给后台是键值对的形式

    页面传递的都是string ; 每个标签要有name的原因是为了取值  因为传递给后台是键值对的形式

  6. react 在IE9下input标签使用e.target.value取值失败

    在react项目开发中,input标签使用onChange方法获取输入值改变state: <input type="text" id="redeemNum" ...

  7. 对<tr><td>标签里的input 循环取值

    需求描述:单击table整行,跳转到具体的信息页面  关键就是获取整行的id,传给后台做查询,返回list 解决思路:用带参数函数传过去id,然后在js的函数中用$("#id"). ...

  8. struts2 页面标签或ognl表达式取值--未完待续

    一.加#号取值和不加#号取值的解说 1.s:property 标签——value属性使用事项 1)涉及问题:取值时什么时候该加#,什么时候不加? 2)介绍 <s:property value=& ...

  9. struts2标签#、%、$取值

    转自:https://blog.csdn.net/kosum/article/details/21375635 首先了解下OGNL的概念: OGNL是Object-Graph Navigation L ...

随机推荐

  1. Hive的HQL语句及数据倾斜解决方案

    [版权申明:本文系作者原创,转载请注明出处] 文章出处:http://blog.csdn.net/sdksdk0/article/details/51675005 作者: 朱培          ID ...

  2. 常用的DDL语句

    create database mydb1; 创建一个名称为mydb1的数据库. use db_name; 切换数据库 ; show databases; 查看所有的数据库: select datab ...

  3. springMVC源码分析--ControllerClassNameHandlerMapping(九)

    在上一篇博客springMVC源码分析--AbstractControllerUrlHandlerMapping(六)中我们介绍到AbstractControllerUrlHandlerMapping ...

  4. Android自定义控件及自定义属性

    Android自定义控件及自定义属性 自定义控件 创建自定义控件 自定义一个类,继承View 继承View还是哪个类,取决于你要实现一个什么样的控件 如果你要实现的是一个线性布局的组合控件,就可以继承 ...

  5. SQL语句常见问题的总结(持续更新)

    语言问题 修改语言注册表\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432\ORACLE\KEY_DevSuitHome1中的NLS_LANG修改为AMERICAN_AMERIC ...

  6. RxJava(六) retryWhen操作符实现错误重试机制

    欢迎转载,转载请标明出处: http://blog.csdn.net/johnny901114/article/details/51539708 本文出自:[余志强的博客] 业务需求 当我们在app里 ...

  7. SQL Server 执行计划操作符详解(2)——串联(Concatenation )

    本文接上文:SQL Server 执行计划操作符详解(1)--断言(Assert) 前言: 根据计划,本文开始讲述另外一个操作符串联(Concatenation),读者可以根据这个词(中英文均可)先幻 ...

  8. 复习java逻辑---实现猜数字游戏

    package shopping; import java.util.*; public class SendGiftMenu { public static void main(String[] a ...

  9. Java并发框架——公平性

    所谓公平性指所有线程对临界资源申请访问权限的成功率都一样,不会让某些线程拥有优先权.通过前面的CLH Node FIFO学习知道了等待队列是一个先进先出的队列,那么是否就可以说每条线程获取锁时就是公平 ...

  10. SpringMVC源码分析--容器初始化(五)DispatcherServlet

    上一篇博客SpringMVC源码分析--容器初始化(四)FrameworkServlet我们已经了解到了SpringMVC容器的初始化,SpringMVC对容器初始化后会进行一系列的其他属性的初始化操 ...