目的是想将jsp中的input输入:

<input class="inputstyle" type="text" value="<s:property value="#result.maritalStatus"/>" name="updatePersonalInfo.maritalStatus" />

改成JSP部分select选择:

<input style="display:none;" type="text" id="selectMerrageValue" name="updatePersonalInfo.maritalStatus" />

<select class="selectstyle" id="selectMerrage">

    <s:if test="#result.maritalStatus==null">

        <option value="--请选择--">--请选择--</option>

        <option value="是">是</option>

        <option value="否">否</option>

    </s:if>

    <s:else>

        <s:if test="#result.maritalStatus=='是'.toString()">

            <option value="是" selected="selected">是</option>

            <option value="否">否</option>        

        </s:if>

        <s:else>

            <s:if test="#result.maritalStatus=='否'.toString()">

                <option value="是">是</option>

                <option value="否" selected="selected">否</option>

            </s:if>

            <s:else>

                <option value="--请选择--">--请选择--</option>

                <option value="是">是</option>

                <option value="否">否</option>

            </s:else>

        </s:else>

    </s:else>

</select>

和JS部分取值赋值:

$(function(){

var maritalStatus = document.getElementById("selectMerrage").value

$("#selectMerrageValue").val(maritalStatus);

 });

可是一直出现故障。

測试部分例如以下:

<input type="text" value="<s:property value="#result.maritalStatus"/>" />

有值;

<s:property value="#result.maritalStatus"/>

firebug看html中有值;

${result.maritalStatus}

firebug看html中有值。

终于发现<s:if test="#result.maritalStatus=='是'">和<s:if
test="#result.maritalStatus=='否'">两句

始终不能正确的被推断。最后发现是由于#result.maritalStatus这个字段是String类型。必须在推断的时候加上‘是'.toString()。

附上查询到的帮助博客: http://guokejia1986.blog.sohu.com/174626148.html

博客内容:

Struts2 用 s:if test 推断String类型的对象属性值和单字符是否相等的问题

首先,这里所指的单字符形如:Y。男。

有两种做法:

a. <s:if test='news.sfsecret=="是"'>

b. <s:if test="news.sfsecret=='是'.toString()">

解释例如以下:

由于java是强类型语言,单引號表示char类型,而双引號则表示String类型。所以a中能够正常使用。而b中则须要用toString()方法将char类型转为String类型。

事实上单纯的input改成select也能够用这种方法,当中JSP部分select选择:

<input style="display:none;" type="text" id="selectMerrageValue" name="updatePersonalInfo.maritalStatus" />

<select class="selectstyle" id="selectMerrage">

        <option value="是" id="selectYes">是</option>

        <option value="否" id="selectNo">否</option>

</select>

和JS部分取值赋值:

$(function(){

var maritalStatus= "<s:property value='#result.maritalStatus' escape='false'/>";

if(maritalStatus=="是")

$("#selectYes").attr("selected",selected);

else

$("#selectNo").attr("selected",selected);

    });

这样做的话就不用Struts的<s:if  test ="">来推断了,直接在JS里面定义一个变量取值来推断。

Struts2对值的推断的更多相关文章

  1. 你好,C++(11)如何用string数据类型表示一串文字?根据初始值自动推断数据类型的auto关键字(C++ 11)

    3.5.2  字符串类型 使用char类型的变量我们可以表示单个字符,那么,我们又该如何表示拥有多个字符的字符串呢? 我们注意到,一个字符串是由多个字符串连起来形成的.很自然地,一种最简单直接的方法就 ...

  2. struts2(二)值栈 threadlocal ogal ui

    值栈(重要)和ognl表达式 1.  只要是一个mvc框架,必须解决数据的存和取的问题 2.  Struts2利用值栈来存数据,所以值栈是一个存储数据的内存结构 3.  把数据存在值栈中,在页面上利用 ...

  3. struts2取值

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

  4. Struts2的值栈和OGNL牛逼啊

    Struts2的值栈和OGNL牛逼啊 一 值栈简介: 值栈是对应每个请求对象的一套内存数据的封装,Struts2会给每个请求创建一个新的值栈,值栈能够线程安全的为每个请求提供公共的数据存取服务. 二 ...

  5. 【Java EE 学习 36】【struts2】【struts2系统验证】【struts2 ognl值栈】【struts2 ongl标签】【struts2 UI标签】【struts2模型驱动和令牌机制】

    一.struts2系统验证 1.基于struts2系统验证的方式实际上就是通过配置xml文件的方式达到验证的目的. 2.实际上系统校验的方法和手工校验的方法在底层的基本实现是相同的.但是使用系统校验的 ...

  6. Struts2向值栈中压入属性的方式

    Struts2在初始化Action的时候会先向值栈中压入一个action对象,里面包含了各个属性,这些属性是怎么被压进去的?或者说是根据什么来压入的?直到2016年5月5日才理解,原来是在初始化act ...

  7. Struts2 的 值栈和ActionContext

    1.ValueStack 和 ActionContext 的关系与区别: -- 相同点:它们都是在一次HTTP请求的范围内使用的,它们的生命周期都是一次请求 -- 不同点:ValueStack 分为对 ...

  8. struts2域值操作

    1.通过servletActionContext类 /*** * 获得方式一:通过ServletActionContext类 * 提供的静态方法获得原始的web对象,直接和servlet的API耦合 ...

  9. Struts2的值栈和对象栈

    ValueStack 如何得到值栈: 如何将对象存入值栈: 让值栈执行表达式来获得值: 在JSP中跳过栈顶元素直接访问第二层: 在JSP中访问值栈对象本身(而不是它们的属性) ActionContex ...

随机推荐

  1. ppt整体配色方案

        背景色建议以灰色或者被色为主.       在百度云盘也有大量的ppt模板,还是非常不错的.http://pan.baidu.com/s/1bpDf7Fh    

  2. JUC-Condition和Lock实践-线程按序交替执行

    编写一个程序,开启 3 个线程,这三个线程的 ID 分别为 A.B.C,每个线程将自己的 ID 在屏幕上打印 10 遍,要求输出的结果必须按顺序显示.如:ABCABCABC…… 依次递归 这里只使用c ...

  3. Windows下 VS2015编译boost1.62

    VS2015编译boost1.62 Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有 ...

  4. CentOS7下 简单安装和配置Elasticsearch Kibana Filebeat 快速搭建集群日志收集平台

    目录 1.添加elasticsearch官网的yum源 2.Elasticsearch 安装elasticsearch 配置elasticsearch 启动elasticsearch并设为开机启动 3 ...

  5. Spring Cloud开发实践 - 04 - Docker部署

    Docker的安装和命令可以参考 https://www.cnblogs.com/milton/p/9866963.html . 资源规划 这一步要区分传统资源和Docker资源, 为后面的细节定好基 ...

  6. iOS 瀑布流之栅格布局

    代码地址如下:http://www.demodashi.com/demo/14760.html 一 .效果预览 二.确定需求 由下面的需求示意图可知模块的最小单位是正方形,边长是屏幕宽除去边距间隔后的 ...

  7. Android context空指针异常

    Fragment中的代码 context 是null public class PlaceholderFragment extends Fragment{ Context context = getA ...

  8. c++ 11 override final

    C++ 11添加了两个继承控制关键字:override和final. override确保在派生类中声明的重载函数跟基类的虚函数有相同的签名.final阻止类的进一步派生和虚函数的进一步重载

  9. python中的struct模块

    struct模块用于将python中的对象转化为bytes. 举例 demo1:将int转换为bytes buf1 = 256 bin_buf1 = struct.pack('i', buf1) # ...

  10. python+stomp+activemq

    python也可以连接MQ,以ActiveMQ为例,安装stomp.py: https://github.com/jasonrbriggs/stomp.py 下载后安装: python setup.p ...