目的是想将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. JAVA中的CountDownLatch、CyclicBarrier、Semaphore的简单测试

    因公司需要做一个对于CountDownLatch的分享,特写了此blog. 具体细节可以参见:小结java自带的跟锁相关的一些类 在做这个分享的过程中发现了Main和junit的运行的区别,在另外一个 ...

  2. INT函数和ROUND

    语法:INT(number) Number 需要进行向下舍入取整的实数

  3. django之创建第6个项目-过滤器

    1.views.PY # Create your views here. #coding:utf-8 from django.http import HttpResponse import datet ...

  4. Quartz.NET开源作业调度框架系列(一):快速入门step by step-转

    Quartz.NET是一个被广泛使用的开源作业调度框架 , 由于是用C#语言创建,可方便的用于winform和asp.net应用程序中.Quartz.NET提供了巨大的灵活性但又兼具简单性.开发人员可 ...

  5. 基于酷Q的工作秘书机器人

    代码地址如下:http://www.demodashi.com/demo/14617.html 环境准备 名称 版本 Jdk 8 groovy 2.4.12 gradle 4.6 酷Q 5.12.3A ...

  6. ios中在uiNavigationcontroller中做转场动画

    1:了解,当创建一个UINavigationcontroller中时,当创建一个子视图控制器压入uiNavigationController中,其中里面的view也别加入UINavigationcon ...

  7. <转>lua解释执行脚本流程

    本文转自:http://www.cnblogs.com/zxh1210603696/p/4458473.html #include "lua.hpp" #include <i ...

  8. 搭建简单的网络部分(OC)框架

    准备工作 1.文件目录结构示图(按照MVC分层) 文件目录结构图/自定义Cell Controller: CYXOneViewController Model: CYXMenu View: CYXCe ...

  9. iOS block分析

    block是代码块,其本质和变量类似.不同的是代码块存储的数据是一个函数体.使用Block,就可以像其他标准函数一样,传入参数,并得到返回值. 可以把Block当做Objective-C的匿名函数,B ...

  10. linux下如何查看多核负载情况【转】

    最近服务器负载超荷,CPU的单个荷使用率到了百分之八九十,内存占用超大,让给检测性能,不给源码,只给一个+ -g编译生成的执行文件,Fuck!!! 1, 在linux下载了valgrind,使用val ...