您的位置:首页 > 编程语言 > Java开发

Struts 官方文档——使用Struts Tags

2016-06-14 12:03 555 查看
Reference:《ST2.NO.0003 struts2.0 官网文档学习笔记之三 - Struts tags》作者:lvpinStruts2官方文档的第二课是个MVC雏形的Hello World:首先. 用户的请求会由体系中的控制器来控制,分为前端Filter控制器和后端 Action 控制器. 前端的Filter控制器将拦截所有的用户请求,并通过查找 struts.xml 中的请求配置,将请求转发给相应的Action.其次,在Controller Action中执行了它的 execute()方法,且通过execute()方法的返回值明确了最终要迁移的视图JSP,最后.在JSP中,使用在index.jsp中使用了Struts2的URL标签指向了HelloAction:
<p><a href="<s:url action='hello'/>">Hello World</a></p>
为了在视图页面中使用Struts2  标签,你的应用程序必须包含标签库指令. 典型的,标签库指令是
<%@ taglib prefix="s" uri="/struts-tags" %>
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="helloLink"),下半部分代码使用了这个变量。实际上这个变量就是一个带参数userName(值为Bruce Phillips)的action。这种方式比<p><a href="<s:url action='hello'/>">Hello World</a></p> 要好看的多,而且可以复用。在经过编译后的HTML代码应该是这个样子的:
<a href="/struts2_003/hello.action?userName=Bruce+Phillips">Hello Bruce Phillips</a>
 Struts2 Form TagStruts2 textfield 标签提供了一个输入文本框并且 submit 标签创建了一个  submit 按钮, 当页面被请求返回到浏览器时能看到
<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>
 
编译后的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>
要注意的是 Struts2 在form中创建了一个表格用来定位 form的元素,其实我觉得这样很丑!据说以后会学习到使用布局(table,css)。这个要重点研究一下!Struts2 textfield 标签创建了一个HTML输入标签,它的名称值和Struts2 textfield中的name值是一样的. Struts2也基于textfield标签创建了一个 HTML Label 标签.//补充说明: label 的作用是当你点击这个Label,即Your name时, 文档框将获得焦点. 还记得姓名单选按钮吗? 如果要选中单选按钮必须点击那个小圆圈, 但是有了 label 通过设置 label 标签的for属性时,单击一个label 就表示选中了 for="id" ,那个id所指向的元素. 这样就不用戴着眼镜去选那么小的圆圈了.. Struts2 ,自动帮我们设置好了这个步骤.Struts Property Tag在Hello Wolrd 教程中已经谈论过了关于 messageStore.message 的值,它告诉Struts2第一次请求的是Action类的getMessageStore()方法. 这个方法将会返回一个 MessageStore的对象. ".message"的部分告诉Struts2要去调用MesageStore对象的getMessage()方法. getMessage()方法会返回一个字符串,这个字符串最终将会包含在返回的HTML页面中显示。
<s:property value="messageStore.message" />
Struts2 property 标签一个非常有用的特性是它能够自动的转换普通的数据类型(int,double,boolean)成一个String类型的等价物。//注意:尽管 helloCount是一个static类型的数据, 但是它的 get/set 方法不是static类型的. 如果在Struts2中通过调用 getHelloCount()的方法来得到 helloCount 的值, 那么 getHelloCount()方法不能是 static 类型的.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: