Struts 2数据标签示例教程
Struts 2提供了许多自定义标签,我们可以在JSP页面中使用它们来从ValueStack以及从请求,会话或者应用程序范围属性中获取应用程序数据。
Struts 2标签可以分为三类-数据标签,控制标签和UI标签。
今天,我们将研究Struts2数据标签以及如何在JSP页面中使用它们。
我们需要在JSP页面中导入Struts 2标记库,以通过taglib指令使用它们:
<%@ taglib uri="/struts-tags" prefix="s" %>
首先让我们简要介绍一下Struts 2数据标签,然后再看看它们在struts项目中的用法。
属性标签:这是从ValueStack以及应用程序,会话或者请求范围获取属性的最广泛使用的标签之一。
属性标记的一些重要属性是–表达式的值,如果OGNL表达式返回null,则默认为默认值,而转义HTML标记则使用escapeHtml。
我们还可以通过属性标签调用bean方法。设置标签:用于设置应用程序,会话,请求,页面或者操作中的值。
如果我们不提供任何范围,则会为操作设置值。push标记:大多数情况下,在结果页面中,我们使用单个bean的bean属性。
我们可以使用push标签将值拖入栈顶,以便我们可以直接使用属性,而无需在bean前面加上前缀。
当经常使用单个bean时,这有助于编写更简洁的代码。bean标签:我们可以使用bean标签在JSP页面中初始化Java bean,然后使用param标签将参数传递给它的属性设置器方法。
初始化bean之后,我们可以使用property标签访问它。动作标签:我们可以使用动作标签从结果页面调用另一个动作,然后在页面中使用返回的值。
我们可以选择通过executeResult属性在当前页面中呈现响应。标记:我们可以使用此标记在JSP页面中创建超链接。
date标签:我们可以使用此标签获取java bean date变量,然后使用formatter对其进行格式化。
include标记:这类似于JSP include动作,我们可以使用它在JSP页面中包括另一个资源。
i18n和文本标签:这些标签可用于JSP页面中的i18n支持。
我们可以使用i18n标记来提供属性文件名,我们应该其中查找键值,键名随文本标记一起传递。debug标签:我们可以使用此标签来调试JSP页面。
此标记创建一个Debug链接,该链接向我们显示ValueStack的内容和堆栈上下文信息。
我们将创建一个简单的Web应用程序,将在JSP结果页面中使用以上标记。
我们将创建简单的动作类来填充bean值。
我们还将创建用于i18n的全局属性文件。
我们的最终项目将如下图所示。
配置文件
web.xml
<s:property value="country" default="USA"
pom.xml
<s:set var="defaultGender" value="gender" scope="application"></s:set>
pom.xml和web.xml文件具有在Web应用程序中使用Struts 2的配置。
struts.xml
<s:push value="user"> User Name = <s:property value="name" <br> <!-- no need to use user.name now --> </s:push>
需要注意的重要一点是" struts.custom.i18n.resources"配置,以将global.properties文件用于i18n。
global.properties
<s:bean name="com.theitroad.struts2.model.User" var="myUser"> <s:param name="name">hyman</s:param> </s:bean>
简单属性文件,将在结果页面中使用它显示消息。
Java Bean类
<s:action name="footer" namespace="/" executeResult="true"></s:action>
简单的Java Bean,其值将在操作类中设置,并在JSP页面中用于显示值。
Action类
<s:a href="https://www.theitroad.local">Go To Home</s:a>
设置Java bean属性的简单操作类。
<s:date name="date" format="MM/dd/yyyy"
将使用操作标记从JSP页面调用此操作。
结果页面
footer.jsp
<s:include value="/footer.jsp"></s:include>
简单HTML片段,它将使用include标记及其页脚操作的响应包含在home.jsp中。
home.jsp
<s:i18n name="global"> <s:text name="home.name"></s:text> </s:i18n>
这是主要结果页面,其中显示了所有Struts 2数据标签的使用情况。
请仔细研究此内容,例如struts 2数据标签的用法。