Struts2的%,#,$的区别,UI标签及其表单radio,checkbox,select回显数据(七)上

简介: Struts2的%,#,$的区别,UI标签及其表单radio,checkbox,select回显数据(七)

Struts2的UI标签,实际上就是将html中的表单再次增强了一下,html中的表单控件都有在struts2中相应的对照。


struts2标签不但拥有html标签的种种特点,还具有某些特殊的功能。


在介绍ui表单之前,再次讲一下注意点


注意点:


1.struts2的UI标签,默认的主题是struts.ui.theme=xhtml, 这样的主题是按照table表格进行处理的,


不如前端boostrap或者layui进行处理,所以将样式改变simple格式。


在struts.xml中:


    <!--修改struts中ui的主题,为simple-->
  <constant name="struts.ui.theme" value="simple"></constant>


2.在struts中css的样式为cssClass, 普通的html为class


3.在struts2中style的样式为cssStyle,普通的html为style 两者的用法是完全一样的。


4.struts2增加了errorClass和errorStyle的样式。


5.设置标签的显示名称用label


一. OGNL中 #, %,${}的作用与区别


一.一 # 的用法


一.一.一 访问非根对象时使用



ActionContext.getContext().put(“name”,“两个蝴蝶飞”);


访问时就用#做前缀:


<s:property value="#request.name"/>
<s:property value="#attr.name"/>


第二种常见的情况就是,在<s:set > 或者<s:iterator var=“user”> 时,取值时要用#user.属性,#set中的var值来获取值。


一.一.二 用于过滤和投影(projecting)集合


如books.{?#this.price>35}


遍历books集合,取出这个集合里面价钱>35的书本


一.一.三 用于构建Map


如: 构建性别的map


<s:radio list="#{‘男’:‘男’,‘女’:‘女’,‘保密’:‘保密’}" name=“sex”/>


也可以构建复选框和select框的,见下面标签的使用查看实例。


一.二 %的用法


用于强制转换成 ognl 表达式


当一个标签中的属性被翻译成字符串的时候,用%进行修饰,


告诉标签,这是一个OGNL表达式,让其按照OGNL表达式进行解析。 相当于强制转换。


如:


<%
    request.setAttribute("name","两个蝴蝶飞");
%>
<s:textfield name="name" value="#request.name"
label="不用%号的情况:"/> <br/>
<s:textfield name="name" value="%{#request.name}"
label="用%号的情况,强制解析:"/>


20200609113510384.png


特别是在form表单中,后面有value=“一个值” 的情况下,都用%{} 进行强制转换。


一.三 $的用法


这个$是ONGL的$,不是EL的,更不是Jquery的。 常用于配置文件中。


一.三.一 在db.properties文件中引用


<property  name="driverClass" value="${jdbc.driverClass}"/>


一.三.二 在struts.xml中跳转时传递数据(如id.parentId)使用


<result name="success" type="redirectAction">User_list.action?parentId=${parentId}</result>


一.三.三 在国际化时使用,做占位符


user.success=欢迎${name}登录
##但常用的为下面这种  Java的MessageFormat也是用这种方式
user.success=欢迎{0}登录


一.三.四 在验证Validate框架中使用


<validators>
    <field name="age">
            <field-validator type="int">
            <param name="min">18</param>
            <param name="max">58</param>
            <message>校验:年龄必须为${min}为${max}之间!</message>
        </field-validator>
    </field>
</validators>


二 UI 标签库


二.一 < s:form>标签的常用属性


    <s:form action="Single_getData"
    method="post" namespace="/" enctype="">
    </s:form>


这好像都没有什么可以说的,直接看就能明白。


如果要访问的路径是:user/User_add.action, 那么可以写


action="/user/User_add.action",namespace="/", 也可以写


action=“User_add.action”,namespace="/user", 建议使用后者。因为有的时候第一种情况,是无法确定是加上/user,还是不加/user。


二.二 <s:hidden> 标签的常用属性


s:hidden学用来表示隐藏域,在修改实体的表单数据中,常将id隐藏起来。


<s:hidden name="id" value="%{id}"/>


有时候,有没有隐藏的id值,是区分添加对象还是修改对象的依据。如果这个id值不为空,那么就是修改,如果为空,那么就是添加。


二.三 <s:textfiled> 普通文本域


姓名:<s:textfield name="name" value="两个蝴蝶飞"
    cssClass=".input" cssStyle="width:100px;" ></s:textfield>


重启启动服务器,便会显示出name了.


20200609113534352.png


二.四 <s:password> 密码隐藏域


<s:password name="password" value="1"></s:password>


二.五 <s:file> 文件上传框


<s:file name="upload" label="文件上传"></s:file>


二.六 <s:textarea> 文本域


<s:textarea name="description" cols="20" rows="3" value="这才是真正显示的数据呢">这是自我描述</s:textarea>


真正显示数据是在value属性中显示的,在中间是不显示的,这一点与html中的textarea标签不一样。


20200609113547995.png


二.七 <s:submit>提交按钮


<s:submit value="提交"/>


二.八 <s:reset> 重置按钮


<s:reset value="重置"></s:reset>


接下来,就是最重要的UI控件,单选框,复选框,选择框了。 说其重要,主要表现在数据回显的角度上看得。


在工作开发中,常常会用到 这三个框的回显。


用JS判断相对来说比较麻烦,用Struts自己封装的UI控制就相对简单了。

相关文章
|
1月前
【UI】 element -ui select下拉框label显示多个值
【UI】 element -ui select下拉框label显示多个值
44 1
|
1月前
element ui实现多层级复杂表单的操作(添加与回显)之表单操作交互操作
element ui实现多层级复杂表单的操作(添加与回显)之表单操作交互操作
44 0
|
1月前
|
JavaScript
vue element-ui中有关表格中的数据整条显示红色/绿色等等颜色的问题
vue element-ui中有关表格中的数据整条显示红色/绿色等等颜色的问题
46 1
|
25天前
|
Kubernetes Oracle 关系型数据库
实时计算 Flink版产品使用合集之web ui能否在线管理数据source和处理数据
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
1月前
|
监控 测试技术
SAP 电商云修改 Product Catalog Staged 版本数据后,同步到 online 版本的 UI 操作
SAP 电商云修改 Product Catalog Staged 版本数据后,同步到 online 版本的 UI 操作
27 3
|
1月前
【UI】elementui select点击获取label 和 value
【UI】elementui select点击获取label 和 value
16 1
|
1月前
【UI】 element ui 表格没有数据时用--填充
【UI】 element ui 表格没有数据时用--填充
38 2
|
1月前
【UI】 vue2 修改elementui 表格table 为空时暂无数据样式
【UI】 vue2 修改elementui 表格table 为空时暂无数据样式
60 1
|
1月前
element-ui中Form表单使用自定义验证规则
element-ui中Form表单使用自定义验证规则
13 0
|
1月前
|
前端开发
element ui实现多层级复杂表单的操作(添加与回显)之回显功能实现
element ui实现多层级复杂表单的操作(添加与回显)之回显功能实现
20 0