Java开发必会框架Struts2第四天

Java (2) 2024-09-01 16:23

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
Java开发必会框架Struts2第四天,希望能够帮助你!!!。

一、OGNL配合通用标签的其他使用

1、iterator标签(很重要)

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第1张

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第2张

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第3张

2、OGNL投影(了解)

2.1、使用过滤条件投影

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第4张

2.2、投影指定属性

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第5张

3、Struts2中#,$,%符号的使用(重要)

3.1、#

a、取ActionContext中key时使用,例如<s:property value="#name" />

b、OGNL中创建Map对象时使用,例如:<s:radio list="#{'male':'男','female':'女'}" />

3.2、$

a、在JSP中使用EL表达式时使用,例如${name}

b、在xml配置文件中,编写OGNL表达式时使用,例如文件下载时,文件名编码。struts.xml——>${@java.net.URLEncoder.@encode(filename,"UTF-8")}

3.3、%

在struts2中,有些标签的value属性取值就是一个OGNL表达式,例如<s:property value="OGNL Expression" />

还有一部分标签,value属性的取值就是普通字符串,例如<s:textfield value="username"/>,如果想把一个普通的字符串强制看成时OGNL,就需要使用%{}把字符串套起来。

例如<s:textfield value="%{username}"/>。当然在<s:property value="%{OGNL Expression}" />也可以使用,但不会这么用。

4、其他标签

4.1、set标签

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第6张

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第7张

4.2、action标签

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第8张

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第9张

4.3、if标签,elseif标签 else标签

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第10张

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第11张

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第12张

4.4、url和a标签(很有用)

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第13张

二、Struts2的UI标签和主题

1、Struts2中UI标签的优势

自动的数据回显和错误提示功能

自带的简单样式和排版

2、表单标签的通用属性

说明:UI标签中value的取值一般都是字符串。

2.1、UI标签的通用属性

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第14张

2.2、关于checkboxlist的使用:

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第15张

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第16张

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第17张

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第18张

2.3、UI标签的小案例以及模型驱动的分析

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第19张

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第20张

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第21张

3、UI标签的模板(主题)

3.1、struts2中默认主题

默认主题的名称是XHTML,都是在struts的默认属性文件中定义着:default.properties

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第22张

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第23张

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第24张

3.2、更改默认主题

a、更改表单某个元素的默认主题:使用的是表单元素的theme属性。

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第25张

b、更改表单所有主题:使用的是form标签的theme属性。

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第26张

c、更改全站所有表单主题:是在struts.xml配置文件中,覆盖原有主题的设置。

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第27张

三、防止表单重复提交(拦截器)

1、回顾之前的解决办法:

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第28张

2、Struts2中的解决办法:

2.1、使用重定向

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第29张

遗留的问题:防不住后退,再提交。

2.2、使用<s:token/>生成令牌配合token拦截器

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第30张

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第31张

点击后退的时候,会提示:

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第32张

配置结果视图:

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第33张

遗留的问题:此种解决方式,是产生了错误之后再告知用户,你错了。

2.3使用<s:token/>生成令牌配合tokensession拦截器

Java开发必会框架Struts2第四天_https://bianchenghao6.com/blog_Java_第34张

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

下一篇

已是最新文章

发表回复