目的是想将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. DATEDIF函数

    DATEDIF(start_date,end_date,unit) DATEDIF函数是Excel隐藏函数,在帮助和插入公式里面没有. 返回两个日期之间的年\月\日间隔数.常使用DATEDIF函数计算 ...

  2. python 之模块之 xml.dom.minidom解析xml

    # -*- coding: cp936 -*- #python 27 #xiaodeng #python 之模块之 xml.dom.minidom解析xml #http://www.cnblogs.c ...

  3. 子类化QTreeWidgetItem实现增加Item的属性

    因为有需求是点击QTreeWidgetItem需要获取该Item的节点的相关属性,Item需要保存关联的属性,那么就需要扩展QTreeWidgetItem,当然,C++中扩展修改一个类或组件的方式就是 ...

  4. CSS3 flex的使用方法

    display:flex; align-items://水平对齐方式 justify-content://垂直对齐方式 flex://盒子所占大小(如果你盒子里面只有两个div,那么你设置其中之一个f ...

  5. Sublime Text 使用方法

    1. 官网下载安装 http://www.sublimetext.com/ 2.安装 Package Control 1)ctrl+~ : 呼出控制台 2)在控制台输入一下代码: import url ...

  6. Oracle的悲观锁和乐观锁

    为了得到最大的性能,一般数据库都有并发机制,不过带来的问题就是数据访问的冲突.为了解决这个问题,大多数数据库用的方法就是数据的锁定. 数据的锁定分为两种方法,第一种叫做悲观锁,第二种叫做乐观锁.什么叫 ...

  7. 航信电子发票开发(servlet请求方式)

    在系统用户交费后,需要打印发票,可以选择普票或者机打票(票据信息在系统中自定义设置的),也可以打印电子发票,这里对接的是航信的电子发票,请求方式非web服务,而是使用servlet通过HTTP请求的方 ...

  8. Swift3 JSON字符串和字典互转(JSON字符串转字典和字典转JSON字符串)

    直接上代码吧 1.JSONString转换为字典 /// JSONString转换为字典 /// /// - Parameter jsonString: <#jsonString descrip ...

  9. Spring AOP之Introduction(@DeclareParents)简介

    Spring的文档上对Introduction这个概念和相关的注解@DeclareParents作了如下介绍: Introductions (known as inter-type declarati ...

  10. 查看linux设备文件系统类型的方法

    网络上找来找去没有找到简单的,最后翻了鸟哥的书就找到了,鸟哥的书还是真的有用心写的. /proc/filesystems 当前被内核支持的文件系统类型列表文件 /etc/filesystems 系统已 ...