struts2入门教程六(struts2标签及约定编程)
来源:互联网 发布:网络爬虫开源框架 编辑:程序博客网 时间:2024/04/29 13:21
Struts2标签
通用标签
通用标签是用于控制执行流,当页面呈现。这些标签也允许数据提取的地方比你的行动或其他价值堆栈,如本地化,javabean,包括额外的url或其他的action。
控制标签提供控制流,例如,if,和迭代器。
数据标签允许数据操作或创建,bean,push,i18n。
这里有各个标签使用的详细案例非常好,所有的测试类及界面写额的较为详细
http://www.roseindia.net/struts/struts/struts2.2.1/tags/index.html
UI 标签
与通用的标记、UI标记不提供控制结构或逻辑。相反,他们关注使用数据,从你的行动/值栈或从数据标签,在丰富的可重用的HTML和显示数据。所有UI标记是由模板和主题。虽然通用标签仅仅输出一些内容直接从标记(如果有任何内容输出),UI标记听从一个模板,通常组合在一起作为一个主题,做实际的呈现。
模板支持允许HTML UI标记构建一组丰富的可重用的组件,可以定制,以适应具体的要求。,主题和模板。
此页面也有详细介绍大家可以参考
http://www.roseindia.net/struts/struts/struts2.2.1/tags/index.html
struts2零配置
1.零配置并不是没有配置,而是通过约定大于配置的方式,大量通过约定来调度页面的跳转而使得配置大大减少。
2.约定优于配置
3.安装Convention插件,复制struts2-convention-plugin-2.3.16.jar
convention-plugin的约定
1. 默认所有的结果页面都存储在WEB-INF/content下,可以通过设置struts.convention.result.path改变到其他路径。
<constantname="struts.convention.result.path" value="/WEB-INF/page"/>
2. 默认包路径包含action,actions,struts,struts2的所有包都会被struts作为含有Action类的路径来搜索。
<constantname="struts.convention.package.locators"value="web,action" />
3. 接着,Convention从前一步找到的package以及其子package中寻找com.opensymphony.xwork2.Action 的实现以及以Action结尾的类:
4. 命名空间。从定义的.package.locators标示开始到包结束的部分,就是命名空间。Com.csdn.net.user.userAction的命名空间是:”/user”。Com.csdn.net.user.detail.UserAction的命名空间是:”/user/detail”
5. Convention通过如下规则确定URL的具体资源部分:去掉类名的Action部分。然后将将每个分部的首字母转为小写,用’-’分割
<constantname="struts.convention.action.name.separator" value="-"/>
Com.csdn.net.detail.UserDetailAction,映射的url就是/WEB-INF/content/user/detail/user-detail.jsp
6. struts支持.jsp .html .htm .vm格式的文件。
7.返回success 页面为login.jsp / login-success.jsp / login.html / login-success.html
以下案例命名规范示例图
案例一: helloworld
Java 代码必须按照规定命名补不得改动
package action; import com.opensymphony.xwork2.ActionSupport; public classHelloWorld extendsActionSupport { /** * */ private static final long serialVersionUID= 1L; private String message; public String getMessage() { return message; } public void setMessage(Stringmessage) { this.message = message; } @Override public String execute() throws Exception { message="HEllOwrold"; return SUCCESS; } }
Jsp页面 hello-world.jsp
仅为测试用
<%@ page language="java"import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN"><html><head> <title>My JSP'hello-worldp.jsp' starting page</title> </head> <body>${message }</body></html>
效果图
访问 : http://localhost:8080/convention/hello-world
案例二Action链的约定
第一个Action返回的逻辑视图字符串没有对应的视图
第二个Action与第一个Action处于同一个包下
第二个Action的URL为:firstActionName+resultcode
http://localhost:8080/convention/first
java代码—first.java
package action; import com.opensymphony.xwork2.ActionSupport; public classFirst extendsActionSupport { /** * */ private static final long serialVersionUID= 1L; @Override public String execute() throws Exception { return "second"; } }
Java 代码—FirstSecond
package action; import com.opensymphony.xwork2.ActionSupport; public classFirstSecond extends ActionSupport { @Override public String execute() throws Exception { return SUCCESS; } }
jsp页面--- first-second-success.jsp
<%@ page language="java"import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN"><html><head> <title>My JSP'first-second-success.jsp' starting page</title></head> <body> 来了 This is my JSP page. <br></body></html>
效果图
案例三:Convention插件相关annotation 通过注释
java代码:--HelloAction
package action; importorg.apache.struts2.convention.annotation.Action;importcom.opensymphony.xwork2.ActionSupport; public class HelloAction extendsActionSupport { /** * */ privatestatic final long serialVersionUID = 1L; privateString message; publicString getMessage() { return message; } publicvoid setMessage(String message) { this.message= message; } @Override publicString execute() throws Exception { message="HEllOwrold"; return SUCCESS; } @Action("action1") publicString method1(){ return SUCCESS; } @Action("/user/action2") publicString method2(){ return SUCCESS; } }
Struts.xml--打开动态调用
<?xml version="1.0"encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD StrutsConfiguration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation"value="true"/> </struts>
jsp页面—hello.jsp
仅为测试
<%@ page language="java"import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN"><html> <head> <title>My JSP 'hello.jsp' starting page</title> </head> <body> This is my hello.JSP page. <br> </body></html>
效果图
案例四--- Struts2注解配置之@Results和@Result
在Struts2注解配置之@Action(二)中对于结果页面我还是采用Convention Plugin的约定,但是这一节我需要利用@Results和@Result改变一下这种约定。以及@Results和@Result对类和方法进行注解后所产生的效果。
Java 代码:
package action;import org.apache.struts2.convention.annotation.Action;import org.apache.struts2.convention.annotation.Result;import org.apache.struts2.convention.annotation.Results;import com.opensymphony.xwork2.ActionSupport;@Results({ @Result(name = "error", location = "/WEB-INF/error.jsp") })public class HelloAction extends ActionSupport {/** * */private static final long serialVersionUID = 1L;private String message;public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}@Overridepublic String execute() throws Exception {message = "HEllOwrold";return SUCCESS;}@Action("action1")public String method1() {return ERROR;}@Action("/user/action2")public String method2() {return SUCCESS;}}
效果图:
- struts2入门教程六(struts2标签及约定编程)
- Struts2约定
- Struts2的理解及入门教程
- Struts2 入门教程
- 【Struts2六】ui标签之form标签及数据回显
- Struts2框架(六)
- Struts2(六)---OGNL
- struts2中的约定访问(不需要配置文件)
- Struts2约定优于配置
- 【Struts2】(3)Struts2国际化、Struts2上传下载、Struts2标签使用
- struts2 标签大全及用法
- struts2标签及ognl表达式
- Struts2常用标签及解释。
- 六、struts2的标签的学习
- struts2标签库()
- Struts2标签(二)
- Struts2(十)标签
- struts2+spring+mybatis入门教程六之配置json
- 分数运算
- sliverlight资料列表
- windows server 2008(ntfs格式目录…
- oracle用户被锁定
- 基于 arcgis maplex引擎的点要素抽…
- struts2入门教程六(struts2标签及约定编程)
- ArcGIS10客户端 直连Oracle地理数…
- 3dmax快捷键(适用于各版本)
- GPS设备参数 术语及使用方案整理收…
- 解析带有命名空间的xml,并实例化
- 安卓开发入门
- ArcGIS10 Desktop及AE破解
- "色"谈云计算
- javascript封装