目的是想将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. 彻底抛弃脚本录制,LR脚本之使用web_custom_request函数自定义

    原文  http://www.cnblogs.com/Bonnie83/p/3525200.html 初学性能测试时候,第一步必学脚本录制,但一路下来各种录制失败.回放脚本失败的问题层出不穷,究其原因 ...

  2. RHEL7 MariaDB测试

    MariaDB安装及启动: yum groupinstall mariadb 启动mariadb systemctl restart mariadb systemctl enable mariadb ...

  3. Inno Setup入门(二)——修改安装过程中的图片

    修改安装过程中的图片 一般编译之后,安装过程中出现在左边图片是是下图这个样子的: 其实也可以修改它,只需要在setup段中作一点稍微的修改,加一行代码即可: [setup] AppName=Test ...

  4. JSONObject.parseObject(jsonStr);和JSONObject.fromObject(jsonStr);

    虽然都是返回JSONObject,但是 JSONObject.parseObject(jsonStr);这个方法需要导入import com.alibaba.fastjson.JSONObject; ...

  5. 图解 eclicpse 智能提示 配置

    输入的内容: “.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ” 第一步:   第二步:

  6. ng-file-upload结合springMVC使用

    引入angular和ng-file-upload. 前端代码 Upload.upload({ url: 'upload', fields: {'username': 'zouroto'}, // ad ...

  7. du命令解决linux磁盘空间满的问题(很不错的哦)

    首先你要确定是不是真正的是因为数据空间占满磁盘,经常是因为某个程序的日志占满了空间.当发现磁盘满了以后不要着急,使用以下命令从根目录开始排除查找哪个文件夹最大: du --max-depth=1 找到 ...

  8. php支付宝开发

    1.下载对应的接口demo,注意退款有无密和有密 2.根据接口代码编写,要注意notify_url和return_url不能带有额外参数,并且notify_url中途不能含有跳转,否则post数据会丢 ...

  9. k8s实战读书笔记

    一.概述 kubernetes中Service是真实应用的抽象,将用来代理Pod,对外提供固定IP作为访问入口,这样通过访问Service便能访问到相应的Pod,而对访问者来说只需知道Service的 ...

  10. 【Algorithm】堆排序

    堆是一种完全二叉树结构,并且其满足一种性质:父节点存储值大于(或小于)其孩子节点存储值,分别称为大顶堆.小顶堆.堆一般采用数组进行存储(从下标为0开始).则父节点位置为i,那么其左孩子为2*i + 1 ...