Struts2对值的推断
目的是想将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对值的推断的更多相关文章
- 你好,C++(11)如何用string数据类型表示一串文字?根据初始值自动推断数据类型的auto关键字(C++ 11)
3.5.2 字符串类型 使用char类型的变量我们可以表示单个字符,那么,我们又该如何表示拥有多个字符的字符串呢? 我们注意到,一个字符串是由多个字符串连起来形成的.很自然地,一种最简单直接的方法就 ...
- struts2(二)值栈 threadlocal ogal ui
值栈(重要)和ognl表达式 1. 只要是一个mvc框架,必须解决数据的存和取的问题 2. Struts2利用值栈来存数据,所以值栈是一个存储数据的内存结构 3. 把数据存在值栈中,在页面上利用 ...
- struts2取值
http://www.cnblogs.com/yangy608/archive/2010/11/23/1885256.html struts2取值 1.标签取值方式一 通过<s:property ...
- Struts2的值栈和OGNL牛逼啊
Struts2的值栈和OGNL牛逼啊 一 值栈简介: 值栈是对应每个请求对象的一套内存数据的封装,Struts2会给每个请求创建一个新的值栈,值栈能够线程安全的为每个请求提供公共的数据存取服务. 二 ...
- 【Java EE 学习 36】【struts2】【struts2系统验证】【struts2 ognl值栈】【struts2 ongl标签】【struts2 UI标签】【struts2模型驱动和令牌机制】
一.struts2系统验证 1.基于struts2系统验证的方式实际上就是通过配置xml文件的方式达到验证的目的. 2.实际上系统校验的方法和手工校验的方法在底层的基本实现是相同的.但是使用系统校验的 ...
- Struts2向值栈中压入属性的方式
Struts2在初始化Action的时候会先向值栈中压入一个action对象,里面包含了各个属性,这些属性是怎么被压进去的?或者说是根据什么来压入的?直到2016年5月5日才理解,原来是在初始化act ...
- Struts2 的 值栈和ActionContext
1.ValueStack 和 ActionContext 的关系与区别: -- 相同点:它们都是在一次HTTP请求的范围内使用的,它们的生命周期都是一次请求 -- 不同点:ValueStack 分为对 ...
- struts2域值操作
1.通过servletActionContext类 /*** * 获得方式一:通过ServletActionContext类 * 提供的静态方法获得原始的web对象,直接和servlet的API耦合 ...
- Struts2的值栈和对象栈
ValueStack 如何得到值栈: 如何将对象存入值栈: 让值栈执行表达式来获得值: 在JSP中跳过栈顶元素直接访问第二层: 在JSP中访问值栈对象本身(而不是它们的属性) ActionContex ...
随机推荐
- 关于java线程的daemon的认识
在 JAVA中的CountDownLatch.CyclicBarrier.Semaphore的简单测试 这文章里说到了线程的daemon问题,特写一篇来分析一下. 上代码: package com.y ...
- \G 用法:查询结果按列打印
\G 用法:查询结果按列打印 \G 放到sql语句后,可以使每个字段打印到单独的行, 如: mysql \G; mysql> select * from t \G;*************** ...
- django之创建第7-4个项目-配置views文件实现url传值
即:怎么实现url?name=xiaodeng&age=28等类似传值处理 1.配置views文件 # Create your views here. #coding:utf-8 from d ...
- 转 php安装错误configure: error: Please reinstall the libcurl distribu
今天配置一台server的php支持curl的时候, 出现如下报错 checking for cURL in default path... not foundconfigure: error: Pl ...
- spark rdd Transformation和Action 剖析
1.看到 这篇总结的这么好, 就悄悄的转过来,供学习 wordcount.toDebugString查看RDD的继承链条 所以广义的讲,对任何函数进行某一项操作都可以认为是一个算子,甚至包括求幂次,开 ...
- ios真机调试步骤
http://blog.csdn.net/jianxuanlu/article/details/7283059 http://www.cnblogs.com/85538649/archive/2012 ...
- Android权限详解
在Android的设计中,资源的访问或者网络连接,要得到这些服务都需要声明其访问权限,否则将无法正常工作.在Android中这样的权限有很多种,这里ATAAW.COM将各类访问权限一一罗列出来,供大家 ...
- 【java】详解JFrame结构的分层
在这篇博文中,笔者会介绍JFrame窗口的分层.JFrame继承自Frame,同JFrame.JDialog.JApplet都是重量级组件.如果不弄清楚Frame的分层结构,那么在设置组件的某些特效的 ...
- 如何从40亿整数中找到不存在的一个 webservice Asp.Net Core 轻松学-10分钟使用EFCore连接MSSQL数据库 WPF实战案例-打印 RabbitMQ与.net core(五) topic类型 与 headers类型 的Exchange
如何从40亿整数中找到不存在的一个 前言 给定一个最多包含40亿个随机排列的32位的顺序整数的顺序文件,找出一个不在文件中的32位整数.(在文件中至少确实一个这样的数-为什么?).在具有足够内存的情况 ...
- numpy.linspace()等差数列函数
在numpy中的linspace()函数类似与arange().range()函数: arange() .range() 可以通过指定开始值.终值和步长创建一维等差数组,但其数组中不包含终值 通过 ...