1、Struts1标签库
1.1 Struts的三大标签库
Struts实际上包含了4个标签库:bean,logic,html,tiles
bean:用来在属性范围中定义或取得属性的,同时可以读取资源文件信息
logic:替代JSTL中的判断和循环
html:替代页面表单,完成自动回填以及错误信息的显示
tiles:美工标签,用来进行页面布局的调整以及样式管理的。
1.1.1、bean标签
有用的标签:bean:define,bean:write,bean:message\其他标:bean:size,bean:include,bean:resource等
bean:define:在页面上临时定义属性的
<center>
<% // request.setAttribute("test","Hello"); %>
<bean:define id="test" value="Hello" toScope="request"></bean:define>
${test}
</center>
|
id:属性名/value:属性值,类型只能是String或基本数据类型、toScope:保存的属性范围
bean:write标签:将属性范围中的属性值显示到页面上与EL功能类似 、区别在于这种bean:write安全性高,可以对<>代码进行自动的转义。如果不想转义,可以通过filter属性来进行设置。
<%
User user = new User();
user.setUserid("<font color='red'>Hello</font>");
request.setAttribute("test",user);
%>
EL: ${test.userid} <br/>
bean:<bean:write name="test" property="userid" filter="true"/>
|
格式化数据(时间和金额)
<%
request.setAttribute("money",1);
%>
EL: ${money} <br/>
bean:<bean:write name="money" format=",###.00" />
|
这种格式还可以配置全局的设置,在资源文件中设置。
org.apache.struts.taglib.bean.format.date=yyyy\u5E74MM\u6708dd\u65E5
org.apache.struts.taglib.bean.format.float=,\#\#\#.00
|
bean:message国际化标签,结合资源文件一起使用。要完成国际化功能,首先需要定义多个资源文件。
每门语言对应一个资源文件,这些资源文件的主文件名都与配置好的资源文件名一致。按照以下格式进行命名 : 主文件名_语言名_国家区域名.properties
例如:ApplicationResources_en_US.properties、ApplicationResources_ja_JP.properties
ApplicationResources_zh_CN.properties
页面出现的所有文字信息都要在三个资源文件中定义三个版本、页面上改为标签形式
<font color="red"><html:errors/></font>
<html:form action="/regist.do" method="post">
<bean:message key="msg.userid"/>:<html:text property="user.userid"></html:text> <br/>
<bean:message key="msg.password"/>:<html:password property="user.password"></html:password><br/>
<bean:message key="msg.age"/>:<html:text property="user.age"></html:text><br/>
<bean:message key="msg.birthday"/>:<html:text property="birthday"></html:text><br/>
<html:submit><bean:message key="msg.submit"/></html:submit>
<html:reset><bean:message key="msg.reset"/></html:reset>
</html:form>
|
页面上加入三个超连接,分别连接三门语言。
请选择使用的语言:
<a href="${pageContext.request.contextPath}/language.do?status=change&lan=zh_CN">中文</a> <a href="${pageContext.request.contextPath}/language.do?status=change&lan=en_US">English</a>
<a href="${pageContext.request.contextPath}/language.do?status=change&lan=ja_JP">日本語</a><br/>
|
在ActionForm中接收参数,并将参数处理成为Locale类型
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
if ("change".equals(status)) {// 将lan转换为loc类型
String[] str = lan.split("_");
loc = new Locale(str[0], str[1]);
}
return null;
}
|
在Action中加入设置属性的功能
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LanguageForm languageForm = (LanguageForm) form;
if ("change".equals(languageForm.getStatus())) {// 将Struts当前的语言设置为读取近来接收的语言。
request.getSession().setAttribute(Globals.LOCALE_KEY, languageForm.getLoc());
return mapping.getInputForward();
}
return null;
}
|
1.1.2、logic标签
c标签中的判断标签:c:if,c:choose,c:when,c:otherwise、判断标签包含以下12个:
判断存在标签:logic:present(属性存在),logic:notPresent(属性不存在)
判断等于标签:logic:equal(属性相等),logic:notEqual(属性不相等)
判断大于小于标签:logic:greaterThan(属性大于),logic:lessThan(属性小于)
属性大于等于小于等于标签:logic:greaterEqual(大于等于),logic:lessEqual(小于等于)
属性匹配标签(相当于数据库中的LIKE查询):logic:match(匹配),logic:notMatch(不匹配)
判断非空标签:logic:empty(属性为空),logic:notEmpty(属性不为空)
里面比较有用的标签:logic:present,logic:equal
使用方法参考bean:write
<%
request.setAttribute("test",new java.util.Date());
%>
<logic:present name="money">
存在
</logic:present>
<logic:notPresent name="money">
不存在
</logic:notPresent>
|
比较标签需要多一个value属性。
<center>
<%
User user = new User();
user.setUserid("wuzhulin");
request.setAttribute("test",user);
user = new User();
user.setUserid("wuzhulin");
request.setAttribute("newUser",user);// value表示等号右边的值,name为等号左边的值
%>
<logic:equal value="${newUser.userid}" name="test" property="userid">
相等
</logic:equal>
</center>
|
value属性中直接写代码表示写一个字符串进去,如果要比较两个属性范围中的属性值,value中要加入EL表达式、替代c:forEach可以使用logic:iterate标签,完成循环迭代。
c:forEach var items
<%
List all = new ArrayList();
for (int i = 0; i < 10; i++) {
User user = new User();
user.setUserid("Hello" + i);
user.setBirthday(new Date());
user.setAge(i * i);
all.add(user);
}
request.setAttribute("all", all);
%>
<logic:present name="all">
<%//相当于 c:forEach var="user" items="${all}"
%>
<logic:iterate id="user" name="all">
${user.userid } -- ${user.age } -- <bean:write name="user"
property="birthday" format="yyyy-MM-dd" /><br />
</logic:iterate>
</logic:present>
|
完成单双行变色功能。
<logic:iterate id="user" name="all" indexId="index">
<span style="background:${index%2==0?"#eeeeee":"#dddddd"};"> ----- ${user.userid } -- ${user.age } -- <bean:write name="user"
property="birthday" format="yyyy-MM-dd" />
</span><br />
</logic:iterate>
|
1.1.3、html标签
<html:form>表单:
普通标签:提交路径必须先加${pageContext.request.contextPath}、不自带路径验证功能、可以自行定义name属性、默认提交方式get
Html标签:不需要加上面的${pageContext.request.contextPath},直接以 / xxxx.do开头就可以。自动验证提交路径是否存在、不能自行定义name,其name值与要接收参数的ActionForm的name一致。默认提交方式是post
一般不需要修改的元素:Button、submit、Reset、image
改变比较小的组件:Text,password、Textarea、hidden:使用name作为提交的参数
没有自动回填、使用property作为提交的参数名有自动回填功能
特殊的几个组件(单选):Radio、select、option
都可以通过checked或selected设置默认选中、如果要显示下拉列表,一般是从数据库中查询出数据,并通过<option>显示选项,需要循环迭代
通过ActionForm的自动回填功能来设置默认选中、可以通过<html:options>标签自动将一些数据显示到下拉列表中。
多选框:input type=”checkbox”默认选中使用checked、html:checkbox:不支持默认选中、<html:multibox> 支持默认选中,需要通过ActionForm的回填功能
下拉列表范例:
<html:form action="/pages/back/teacher.do">
选择一级栏目:<html:select property="itemid">
<html:options collection="allItem" labelProperty="name" property="id"/>
</html:select>
</html:form>
其中html:options里,collection表示显示的集合的名称,property表示option中value值对应的属性名,labelProperty表示option中显示的文字对应的属性名。
分享到:
相关推荐
Struts1 标签库详解 Struts1 标签库是 Apache Jakarta 的一个著名的开源项目,目标是为构建基于 Java 的 web 应用程序提供一个框架。Struts 提供了非常多的标签,依据功能和使用习惯的不同被分到了五个标签库中:...
Struts1是一个经典的Java Web开发框架,其核心之一就是丰富的标签库,它简化了开发者在JSP页面上的工作。在本文中,我们将深入探讨Struts1的四个主要标签库:bean、logic、html和tiles,并重点讲解每个库中的关键...
Struts1标签库是Java Web开发中非常重要的一个组件,它是Apache Struts框架的一部分,用于简化JSP页面的编写,提高代码的可读性和可维护性。以下将详细阐述Struts1标签库中的各个标签及其用途。 1. `bean:cookie`:...
Struts1标签库是Java Web开发中用于构建MVC架构的Apache Struts框架的重要组成部分,它提供了一系列方便的标签,帮助开发者简化视图层的实现。这篇文档详细介绍了Struts1标签库的主要内容,旨在帮助初学者快速掌握...
### Struts1 标签库知识点详解 #### 一、Struts1 标签库概述 Struts1 标签库是Struts框架的核心组成部分之一,它为开发者提供了丰富的标签来简化前端页面与后端逻辑之间的交互过程。通过使用这些标签,开发人员...
Struts1标签库是用于构建Java Web应用程序的强大工具,它为开发者提供了丰富的标签,简化了视图层的开发。在本文档中,我们将详细探讨Bean Tags、HTML Tags和Logic Tags这三个核心标签库。 1. Bean Tags: Bean ...
Struts2 标签库详解 Struts2 提供了一个强大的标签库,用于简化 Web 应用程序的开发过程。这些标签可以分为两类:通用标签和 UI 标签。下面,我们将详细介绍 Struts2 标签库的使用。 4.1 通用标签 通用标签用来...
"Struts2标签库详解" Struts2标签库是Struts2框架中的一个重要组件,它提供了一系列的标签,帮助开发者快速构建Web应用程序。在Struts2标签库中,标签可以分为UI标签和非UI标签两大类。UI标签用于生成HTML控件,如...
Struts1标签库是其核心特性之一,它提供了一系列预定义的JSP标签,使得开发者可以更加方便地在视图层构建动态页面,减少对Java脚本的依赖,提高代码的可读性和可维护性。 1. **Struts1标签库概述** Struts1标签库...
1. **Struts标签库概述** - Struts标签库是Apache Struts框架的一部分,旨在减少JSP页面中的Java脚本,提高可维护性和可读性。 - 它提供了一系列与控制器逻辑交互的预定义标签,如显示数据、处理表单、链接动作等...
1. **Struts2标签库介绍** Struts2框架中的标签库是基于JSP标准标签库(JSTL)的扩展,它提供了一系列与动作、结果、表单和国际化相关的标签。这些标签能够帮助开发者在页面上轻松地展现数据、处理表单提交、实现...
Struts1.x HTML标签库是Java Web开发框架Struts1.x中的一个重要组成部分,它提供了一系列预定义的JSP标签,方便开发者创建与HTML表单交互的动态页面。这些标签简化了传统的HTML元素,并且与Struts框架紧密集成,使得...
有关、相关、类似这样的Struts 2标签库的详细介绍。
自己做的struts1.2标签库查询手册(例子和代码同步),以前在网上搜索很多这样的查询手册,觉得很不好用,自己做了一个