-
创建第一个struts2法度
添加时间:2013-7-16 点击量:一切从最简单的做起,艰苦的是到底能走多深。
本人三年工作经验,工作根蒂根基不消struts,工作中一向jsf, spring mvc, struts2从来都只是知道个可能,从不深究。开博客就是开端想记录一下本身感爱好的,本身调查一下本身3年以来的改变,并无过多设法,至于它能改变我几许,我能对峙多久,就拭目以待。3年前曾经就看过struts2,遥想昔时稚嫩的我,无名师领导让我一片迷雾,3年后再看他,对驾驭这批小马已感余裕。人就是在不知不觉中成长。
Struts2的Hello World
开辟景象
1. STS 2.9.1
2. Maven 3.0
3. Tomcat 7.0
Maven POM
在STS中创建一个maven-archetype-quickstart project.
struts2 的设备很是简单,在maven depnedency 里面参加这个就ok
<dependency>
<groupId> org.apache.struts</groupId >
<artifactId> struts2-core</artifactId >
<version> 2.3.15</ version>
</dependency>成功后maven lib就是如许的
Web.xml
以下这个图对struts的描述斗劲清楚了。客户初始化一个request之后,会进入一系列的过滤器(filter),然后会进入action mapper, mapper 会决意好要调用哪个action.
真要调用的话,FilterDispather会把恳求交给ActionProxy,Action Proxy会经由过程设备经管从用户设备的struts.xml里面寻找合适的action 类。随之创建一个Action invocation实例。Invocation会经过一系列的阻碍器之后调用Action,重视Action可认为简单的pojo,只须要存在execute办法即可。
ute办法履行后返回result,师徒模板会按照设备内容返回合适的response回到用户浏览器。
重视绿色的是要用户批改的。简单来说,应用stuts框架和其他框架类似。只须要设备struts.xml,编写action的execute办法以及内涵逻辑,按照模板构建视图。
有了以上根蒂根基概念,就不难懂得web.xml里面这个filter的用处。在做这一步之前要在facet里面讲项目转成dynamic web project 3.0
<%@ page contentType= text/html; charset=UTF-8 %>
<%@ taglib prefix=s uri= /struts-tags%>
<html>
<head></ head>
<body>
<h1> please input your username </h1>
<s:form action= Welcome>
<s:textfield name= username label =Username />
<s:submit />
</s:form>
</body>
</html>JSP
用根蒂根基的jsp来测试一下
参加struts2 的taglib
<%@ taglib prefix=s uri=/struts-tags %>
logon.jsp
<%@ page contentType= text/html; charset=UTF-8 %>
<%@ taglib prefix=s uri= /struts-tags%>
<html>
<head></ head>
<body>
<h1> please input your username </h1>
<s:form action= Welcome>
<s:textfield name= username label =Username />
<s:submit />
</s:form>
</body>
</html>
welcom.jsp
<%@ page contentType= text/html; charset=UTF-8 %>
<%@ taglib prefix=s uri= /struts-tags%>< html><head ></head>< body>
<h1> mxiao sample of struts 2</h1 >
<h4>
迎接应用struts2,
<s:property value= username />
</h4>
</body></ html>Action
编写一个HelloAction,简单的记录用户的名字并返回成功。
package org.mxiao.struts.action;
public class HelloAction{
private String username ;
public String getUsername() {
return username ;
}
public void setUsername(String username) {
this.username = username;
}
// all struts logic here
public String execute() {
return SUCCESS ;
}
}struts.xml
这是struts的设备文件,如上图所示,可以标识出用户的那个request对用那个action和view,以下是最简单的例子。这个文件最后要在classpath中,所以放在resources里面。
以上就是建树一个根蒂根基struts法度的流程,项目布局如下:
接见网址
http://localhost:9084/Struts2Example/User/Login.action
文艺不是炫耀,不是花哨空洞的文字堆砌,不是一张又一张的逆光照片,不是将旅行的意义转化为名牌包和明信片的物质展示;很多时候它甚至完全不美——它嘶吼、扭曲,它会痛苦地抽搐,它常常无言地沉默。——艾小柯《文艺是一种信仰》