Struts2标签-UI标签_xhtml ui-程序员宅基地

技术标签: Struts2  UI标签  

当在页面写Struts2标签是,Struts2内核会对Struts2标签进行解析,在翻译的过程会增加很多内容:

<s:form action="">
<span style="white-space:pre">	</span><s:textfield name="username" value="111"></s:textfield>
</s:form>
HTML源码为:

<table class="wwFormTable">
	<tbody>
		<tr>
			<td class="tdLabel"></td>
	<span style="white-space:pre">		</span><td>
			<span style="white-space:pre">	</span>input id="_username" type="text" value="111" name="username">
		<span style="white-space:pre">	</span></td>
		</tr>
	</tbody>
</table>
如果不想Struts2增加多余的内容,可以在配置文件添加一下属性:

 <constant name="struts.ui.theme" value="simple"/>  简单样式
能做这样修改的原因:

在服务器启动的时候,struts2内部会去org/apache/struts2下面加载一个properties文件:default.properties文件
一些参数的说明:
struts.i18n.encoding=UTF-8 默认的编码
struts.action.extension=action,, 默认的扩展名
struts.devMode = false 开发模式
默认值为false 改了配置文件以后必须重新启动
值为true 改了配置文件以后,struts2内部会自动检查,重新加载
struts.ui.theme=xhtml ui的主题
—————————————————————————————————————————————————————

两个比较重要的标签
s:select
value属性 指向集合的位置
listKey option中的value
listValue option标签的内容
headerKey 第一个option的value
headerValue 第一个option的内容
s:checkboxlist
属性同上
必须有name属性

—————————————————————————————————————————————————————

ui标签的好处:
1、在页面上如果使用struts2的ui标签,不用再写过滤器进行编码的处理
2、使用struts2的ui标签对于数据的回显示很方便的
3、一般情况下,在页面上需要对数据进行回显,则数据放在对象栈中
ActionContext.getContext().getValueStack().push(person1);
4、页面上可以根据struts2标签中的name属性进行回显
<s:textfield name="name"></s:textfield>
5、如果把数据放入到了map栈中,则页面上必须根据value进行回显
6、在s:form标签的各种元素中:
s:textfield
s:textarea
s:password
....
如果要想用value属性进行回显,也就是说value属性内容要跟ognl表达式
value="%{ognl表达式}"



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/WJB08223/article/details/48751837

智能推荐

pythondistutils安装_Python深入:Distutils安装包-程序员宅基地

文章浏览阅读2.2k次。一:简介尽管Python标准库已经支持很多的功能,但是有时还是会需要以第三方模块的形式添加新的功能到Python中。在最简单的场景中,是你要安装的模块,已经有了针对你的平台的安装版本,因此只需要像安装其他软件一样安装他们即可。比如针对Windows用户的安装程序,针对基于RPM的Linux用户的RPM包等等。这种情况,只需要将该安装包下载下来,直接安装即可,比如直接运行”rpm –install”..._python 安装distutils

转载:IP-Guard都干了些什么(其他如威盾等亦差不多)-程序员宅基地

文章浏览阅读1.4k次。##IP-Guard 整个一裹着信息安全软件外衣的超级流氓,下面来看一下它对我们的系统都干了什么。首先是生成的文件,别看它安装程序那么小,其实生成的文件很多也一点都不小C:\Program Files\Common Files\SystemC:\WINDOWS\system32\driv..._装ip guard的都是什么垃圾企业

C语言利用指针实现三个数大小排疼,c语言:利用指针变量,用函数实现将3个整数按从大到小的顺序输出...-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏8次。利用指针变量,用函数实现将3个整数按从大到小的顺序输出。解:程序:#includevoid swap(int *ptr1, int *ptr2){int temp = *ptr1;*ptr1 = *ptr2;*ptr2 = temp;}void exchange(int *q1, int *q2,int *q3){void swap(int *ptr1, int *ptr2);if (*q1 &l..._题目描述 利用指针实现三个数从大到小输出。 交换2个数的函数可以利用你在2453上

面试题杀手锏:CopyOnWrite思想_copyonwrite 笔试题-程序员宅基地

文章浏览阅读228次。  今天聊一个非常硬核的技术知识,给大家分析一下CopyOnWrite思想是什么,以及在Java并发包中的具体体现,包括在Kafka内核源码中是如何运用这个思想来优化并发性能的。  这个CopyOnWrite在面试的时候,很可能成为面试官的一个杀手锏把候选人给一击必杀,也很有可能成为候选人拿下Offer的独门秘籍,是相对高级的一个知识。  1、读多写少的场景下引发的问题?  大家可以设..._copyonwrite 笔试题

python用时间戳给文件命名-Python 给某个文件名添加时间戳的方法-程序员宅基地

文章浏览阅读1.7k次,点赞3次,收藏6次。问题描述:1、(先添加时间戳,再复制移动,两个文件加下面的文件名都被修改)将 /home/kangle/webdata/JPEGImages 路径下的111.jpg文件添加当前时刻的时间戳重命名为类似2018-03-27-18-11-11_111.jpg的形式,而且保存到另外一个路径/home/kangle/result下import datetimenowTime = datetime.date..._python处理word 文件名自动加时间

libudev+V4L2 linux usb摄像头列表发现以及热拔插事件_libudev 打开usb相机-程序员宅基地

文章浏览阅读2.6k次。libudev+V4L2 linux usb摄像头列表发现以及热拔插事件简介最近工作计划本来是重写CameraCtrl 控制类以及实现推流。但是由于需求变动导致之前调研废弃,就暂时放这吧。libudev详细地址: libudev Reference Manulv4l2相关地址:v4l2-ctlVideo for Linux Two API Specificationv4l-utils思路设计初衷,当时设计思路为将CameraManager作为一个摄像头管理模块,用来管理摄像头列表,主要_libudev 打开usb相机

随便推点

ggplot绘制柱状图 python_R语言:ggplot画柱形图并排序-程序员宅基地

文章浏览阅读1k次。导读ggplot2函数包ggplot函数geom_bar参数画柱形图。利用apply(df, FUN=sum)求和利用df[order(df$sum, decreasing=T),]倒序利用scale_x_discrete(limits=factor())设置横轴排序一、输入数据set.seed(1995)# 随机种子data=matrix(abs(round(rnorm(100, mean=10..._ggplot柱状图排序

【雕爷学编程】Arduino智慧校园之使用HC-05蓝牙模块实现通过手机远程控制LED_arduino hc-05-程序员宅基地

文章浏览阅读1k次,点赞13次,收藏27次。在setup函数中,通过pinMode函数将红、绿、蓝LED引脚设置为输出模式,同时使用Serial.begin函数初始化Arduino的硬件串口和bluetoothSerial.begin函数初始化蓝牙模块的软件串口。在setup函数中,通过pinMode函数将LED引脚设置为输出模式,同时使用Serial.begin函数初始化Arduino的硬件串口和bluetoothSerial.begin函数初始化蓝牙模块的软件串口。通过与手机进行配对和连接,可以通过手机发送指令来控制LED的开关、亮度和颜色等。_arduino hc-05

【并发】第七篇 Atomic原子操作类 - 数组类型类详解-程序员宅基地

文章浏览阅读590次,点赞30次,收藏15次。Atomic原子操作类是Java中提供的一组线程安全的基本数据类型操作类,可用于实现线程安全的并发编程。它们可以确保在并发环境下对变量进行原子操作,即不会被其他线程中断或同时修改。

基于C/C++实现 java项目工程加密安全防范_jar c++加密-程序员宅基地

文章浏览阅读4.5k次。工程加密场景介绍实现思路使用微信:13524503122场景介绍底层技术框架保密不被泄漏,项目不想被反编译泄漏内容,不想项目被拷走运行,需要做如下事:1.对编译后的JAR进行加密,未解密是启动不了的2.项目工程与机器绑定,未授权机器无法运行3.时间限定,授权时间到期自动停止总之:让公司的相关技术、相关业务项目不被泄漏实现思路1.对JAR进行加密,根据时间+MAC+密码生成授权文件2.使用c/c++ 解析授权文件解密、授权业务逻辑 生成动态连接库,支持跨平台3.编写java jni接口调_jar c++加密

家政服务系统小程序开发需要实现什么功能?_开源 小程序 家政服务 github-程序员宅基地

文章浏览阅读113次。随着家政服务行业的不断发展和普及,家政服务系统小程序已经成为了许多家政服务企业的首选。总之,家政服务系统小程序需要实现的功能包括用户注册和登录、服务项目展示、预约服务、支付功能、订单管理、评价服务和客服服务等方面。用户可以通过家政服务系统小程序对家政服务人员的服务进行评价,以便于家政服务企业及时改进和提高服务质量。用户可以通过家政服务系统小程序预约所需的服务项目和服务时间,以便于家政服务企业安排家政服务人员。用户可以通过家政服务系统小程序进行在线咨询和投诉,以便于家政服务企业及时解决用户的问题和需求。_开源 小程序 家政服务 github

ionic3中聚焦输入框时,内容被软键盘全部往上顶-程序员宅基地

文章浏览阅读109次。执行打包命令:ionic cordova build android --release然后会生成AndroidManifest.xml:image.png打开后,修改android:windowSoftInputMode="adjustPan|stateHidden"每次打包都需要记得修改这个属性,很麻烦,有没有直接修改编译前配置文件的办法?android:windowSo..._ionic3 聚焦输入框往下滚动