目的是想将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. Ubuntu x86-64汇编(3) 数值操作指令

    指令标注 Operand Notation 指令instruction即运算operation, 操作的对象为一个或多个运算数operand, 使用不同的标记表示不同的约束 <reg>  ...

  2. 转:折腾一晚上Bullet及Ogre相关工具的成果 -- 3Ds Max,Maya, blender, GameKit

    起始目的很简单,整合Bullet及Ogre,找个能够生成.scene和.bullet文件的建模工具. 折腾一晚上Bullet及Ogre相关的东西,基本上就像爱迪生发明灯泡一样,得出了N个失败的教训,总 ...

  3. android中巧妙更改spinner、AutoCompleteTextView分割线的颜色值(spinner AutoCompleteTextView divider color)

    这个问题本来是个不大的问题,但是遇到了就会很郁闷,Android控件的api本身就不太够强大,这个小属性找了好久没找到,今天终于解决,分享给所有遇到这个问题的朋友. spinner下拉列表中间有一条黑 ...

  4. cas配置不通过登陆校验的页面

    项目中的单点登录是通过CAS配置的,如果是未登录状态,那么请求在通过CAS过滤器校验时会转向登陆页面,无法通过访问类似http://localhost:8080/portal/business-plu ...

  5. db_table--Spring Security3.1 最新配置实例

    2011-04-28 这几天学习了一下Spring Security3.1,从官网下载了Spring Security3.1版本进行练习,经过多次尝试才摸清了其中的一些原理.本人不才,希望能帮助大家. ...

  6. hql语句的case when then else end问题

    http://www.iteye.com/problems/4499 hibernate count不支持case when?

  7. Java获取函数参数名称

    原理 编译之后的class文件默认是不带有参数名称信息的,使用 IDE 时,反编译jar包得到的源代码函数参数名称是 arg0,arg1......这种形式,这是因为编译 jar 包的时候没有把符号表 ...

  8. MATLAB R2018a 输入中文却显示方框问号的问题

    [问题] 安装完成软件后,我把编辑区字体重设为 consolas : 就会出现 输入中文注释却没办法正常显示的问题: [解决办法] 把字体改成 Monospaced (查了一下 说是MATLAB默认字 ...

  9. 使用import简化spring的配置 spring import 标签的解析 使用import或加载spring配置时,报错误There is no ID/IDREF 多个Spring配置文件import resource路径配置

    spring-import 标签的解析.使用案例: 对于spring配置文件的编写,我想,对于经历过庞大项目的人,都有那种恐惧的心理,太多的配置文件.不过,分模块都是大多数人能想到的方法,但是,怎么分 ...

  10. C语言学习笔记 (003) - C/C++中的实参和形参(转)

    今天突然看到一道关于形参和实参的题,我居然不求甚解.藐视过去在我的脑海里只有一个参数的概念,对于形参和实参的区别还真的不知道,作为学习了几年C++的人来说,真的深深感觉对不起自己对不起C++老师  T ...