Struts 2数据标签示例教程

时间:2020-02-23 14:36:04  来源:igfitidea点击:

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数据标签的用法。