在上一篇 Struct2(二)中,我们新建了工程Struct2test用来验证hello World 程序,在index.jsp中,我们添加了一个Struct2 uri 标签用来创建一个指向hello.action 的超链接,这篇是更加详细的介绍Struct2 的标签。

在创建动态的响应上,web应用程序,不同于传统的应用程序。为了更加简单的引用一个页面的动态数据,Struct2 框架提供了一套标签。一些标签模仿标准的HTML标记,同时提供了扩展。其他标签不是标准的标签,但能提供比较有用的控制。

注意:

为了使用Struct2 标签集,你必须包括一个标签库命令,一般就是:

<%@ taglib prefix="s" uri="/struts-tags" %>.

1. Struct2 的url标签

Struct2 标签其中的一个就是创建一个指向其他web资源的链接,特别是指向本地应用程序中的资源。

注意:

HTML中提供一个标签a来创建超链接,HTML标签常常要求冗余的信息,并且不是特别方便的能够访问到框架提供的信息。

这个标签一个比较常用的功能是:链接到其他的页面,在hello World 例子中 index.jsp 中hello.action 就是使用了一个Struct2 url 标签,想了解更多关于url标签的,见 url documentation

例子:index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

pageEncoding="ISO-8859-1"%>

<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>Basic Struts 2 Application - Welcome</title>

</head>

<body>

<h1>Welcome To Struts 2!</h1>

<p><a href="<s:url action='hello'/>">Hello World</a></p>

</body>

</html>

与之相对应的是:struts.xml

<action name="hello" class="org.apache.struts.helloworld.action.HelloWorldAction" method="execute">

<result name="success">/HelloWorld.jsp</result>

</action>

url 标签携带参数

定义的方式:

<s:url action="hello" var="helloLink">

<s:param name="userName">Bruce Phillips</s:param>

</s:url>

<p><a href="${helloLink}">Hello Bruce Phillips</a></p>

嵌套在标签里面的叫做参数标签,这个标签可以让我们指定一个参数

标签的生命为var类型的名称,然后能够使用这个变量为${名称},免除重复定义。

2. Struts 2 Form Tags

例子:

<p>Get your own personal hello by filling out and submitting this form.</p>

<s:form action="hello">

<s:textfield name="userName" label="Your name" />

<s:submit value="Submit" />

</s:form>

<s:form> 为定义一个表单

<s:textfield> html的输入的标签

<s: submit> 提交按钮

When the index page is return by the server to the browser you should see:

转为为html为:

<form id="hello" name="hello" action="/Using_Tags_Struts2_Mvn/hello.action;jsessionid=3471d76027b5342cab44f297b567" method="post">

<table class="wwFormTable">

<tr>

<td class="tdLabel"><label for="hello_userName" class="label">Your name:</label></td>

<td><input type="text" name="userName" value="" id="hello_userName"/></td>

</tr>

<tr>

<td colspan="2"><div align="right"><input type="submit" id="hello_0" value="Submit"/>

</div></td>

</tr>

</table>

</form>
3. Struts 2 property tag

<s:property value="messageStore.message" />

修改我们上一个例子,来测试这篇的标签

在HelloWorldAction中加入:

private static int helloCount = 0;

public int getHelloCount() {

return helloCount;

}

public void setHelloCount(int helloCount) {

HelloWorldAction.helloCount = helloCount;

}

记录Action执行的次数,相对应的在execute方法中,加入:

helloCount++;

每次点击超链接的时候,就会增加。

显示点击的次数:

<p>I've said hello <s:property value="helloCount" /> times!</p>

在MessageStore 中增加:

public String toString(){
       return message +"from to String.";
     }

展示的效果:

<p><s:property value="messageStore" /></p>

最后的HelloWorld.jsp为:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Hello World!</title>
</head>
<body>
<p>I've said hello <s:property value="helloCount" /> times!</p>
<p><s:property value="messageStore" /></p>
<h2><s:property value="messageStore.message" /></h2>
</body>
</html>

最终的效果:

上面只是Struct2 几个简单的标签,更多的标签见:Struts 2 Tag Reference

Struct2(三) Struct2 标签的更多相关文章

  1. Css - 利于搜索引擎收录的三个标签

    Css - 利于搜索引擎收录的三个标签 <head> <meta charset="utf-8" /> <title>京东(JD.COM)-正品 ...

  2. 一、变量.二、过滤器(filter).三、标签(tag).四、条件分支tag.五、迭代器tag.六、自定义过滤器与标签.七、全系统过滤器(了解)

    一.变量 ''' 1.视图函数可以通过两种方式将变量传递给模板页面 -- render(request, 'test_page.html', {'变量key1': '变量值1', ..., '变量ke ...

  3. BarTender怎么打印公式化的三列标签

    有小伙伴在业务上有这样的需求:使用BarTender打印一行三列的标签,如下A,B,C三个并排.第一行 A1=a B1=a*2-1 C1=a*2:第二行 A2=a+1 B2=(a+1)*2-1 C2= ...

  4. 网站页面SEO的三个标签怎么写有利【转载】

    转载自:代明博客 在SEO界,自从夫唯老师提出“四处一词”的概念以来,不管是搜索引擎还是SEOer,都格外重视页面的三个标签.三个标签书写是否成功,在很大程度上决定了网页是否能有好的排名.今天代明博客 ...

  5. <script>, <script async>, <script defer> 三种标签的区别

    <script>, <script async>, <script defer> 三种标签的区别 <script>标签 阻塞html parsing 脚 ...

  6. 三个标签完成springboot定时任务配置

    1. 问题描述 Java项目定时任务是必备模块,月高风黑夜跑个批处理,记录或者统计一些系统信息. 2. 解决方案: 结合springboot,只需三个标签就能完成定时任务配置. 2.1 标签1 用在s ...

  7. js之oop <三>属性标签

    读取属性标签 获取对象属性标签,用 Object.getOwnPropertyDescriptor方法.getOwnPropertyDescriptor(); 参数:属性所在对象(object),属性 ...

  8. [19/05/15-星期三] HTML_body标签(超链接标签和锚点)

    一.超链接标签 <html> <head> <meta charset="UTF-8"> <title>04 body超链接标签学习 ...

  9. HTML5快速入门(三)—— 标签综合运用

    前言: 1.HTML5的发展非常迅速,可以说已经是前端开发人员的标配,在电商类型的APP中更是运用广泛,这个系列的文章是本人自己整理,尽量将开发中不常用到的剔除,将经常使用的拿出来,使需要的朋友能够真 ...

随机推荐

  1. Failed to start SYSV: Nginx is an HTTP(S) server, HTTP(S) reverse

    在centos7上安装nginx时,有时会遇见如题所示的nginx启动报错,一般会出现在编写完nginx启动脚本以后试着启动nginx时出现 这里其实没什么什么问题,只是很多时候我们都先用/usr/l ...

  2. Javascript:浮动的导航条

    代码主体及说明 Javascript部分: /** * @函数名:flexScroll * @功能:滚动超出一定高度,指定元素悬浮 * @两个参数:target_id:目标元素id;topEle:限定 ...

  3. Spark的日志配置

    在測试spark计算时.将作业提交到yarn(模式–master yarn-cluster)上,想查看print到控制台这是imposible的.由于作业是提交到yarn的集群上,so 去yarn集群 ...

  4. [AngularJS] Angular 1.5 $transclude with named slot

    In Angular 1.5, there is no link and compile. So use if you transclude, you cannot access the fifth ...

  5. ViewController详解

    一.生命周期 当一个视图控制器被创建,并在屏幕上显示的时候. 代码的执行顺序1. alloc                              创建对象,分配空间2.init (initWit ...

  6. Netmon: A light-weight network monitor for Windows

    Netmon is a light-weight network monitor that works on Windows operating systems. It provides differ ...

  7. QT程序启动界面的使用

    当程序的初始化工作比较多,程序可能启动较长时间后,窗口才会显示出来,用户没准会抱怨程序响应的慢. 为了改善用户体验,最好在程序初始化这段时间显示logo,或者其他信息提示用户程序已启动.QT提供了QS ...

  8. 【iOS开发之静态库、动态库】

    什么是库? 库 就是程序代码的集合, 是共享程序代码的一种方式,库一般分两类:开源库和闭源库.github中共享一般是开源库:闭源库分为:静态库和动态库,闭源库不开放源代码,是经过编译的二进制文件,一 ...

  9. centos7编译安装MySQL5.7.9

    title: centos7编译安装MySQL5.7.9 date: 2016-05-12 16:20:17 tags: --- Centos7编译安装mysql5.7.9 mysql5.7有更好的性 ...

  10. web前端技术

    在网上找了点前端资料,记录下来,以便后面工作可能用到. Flat UI:一个WEB界面工具组件库.很多漂亮的菜单.按钮等. stickUp:一个jquery插件,可以将页面中的元素固定.经常用在把菜单 ...