创建第一个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


    文艺不是炫耀,不是花哨空洞的文字堆砌,不是一张又一张的逆光照片,不是将旅行的意义转化为名牌包和明信片的物质展示;很多时候它甚至完全不美——它嘶吼、扭曲,它会痛苦地抽搐,它常常无言地沉默。——艾小柯《文艺是一种信仰》

    分享到: