Struts2学习(一)

来源:互联网 发布:淘宝的芦荟胶是真的吗 编辑:程序博客网 时间:2024/06/03 19:18

初步使用Struts2

  • Struts2框架需要导入以下九个必需包
    • commons-fileupload-1.3.1
    • commons-io-2.2
    • commons-lang3-3.2
    • freemarker-2.3.19
    • javassist-3.11.0.GA
    • ognl-3.0.6
    • struts2-core-2.3.20
    • struts2-json-plugin-2.3.20
    • xwork-core-2.3.20
  • 最新版本的九个常用jar包的下载地址
  • 新建一个struts2的项目
    • 将九个必用包导入,新建一个类,LoginAction
package com.qi.controller;import com.opensymphony.xwork2.Action;public class LoginAction extends ActionSupport {    public String getUsername() {        return SUCCESS;    }}
  • 在src的根目录里新建一个xml文件,struts.xml,如果对xml不了解的可以查看上一篇博客
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"        "http://struts.apache.org/dtds/struts-2.3.dtd"><struts>    <package name="myFirst" namespace="/" extends="struts-default">        <action name="login" class="com.qi.controller.LoginAction" method="getUsername">           <result name="success">/index.jsp</result>        </action>    </package></struts>
  • 运行该项目,在地址内输入/login.action,页面就会跳转至index页面。

该xml文件中的配置元素

  • 该段代码,代表了struts的DTD约束,一定要看好版本号,导入的什么包就要写什么版本号
<!DOCTYPE struts PUBLIC        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"        "http://struts.apache.org/dtds/struts-2.3.dtd">
  • 该段代码的意思是包名为myFirst namespace的意思是命名空间,默认为/,如果更改为/margin,在访问地址时,要在前面加上/margin+访问路径,extends 为继承了struts-default.xml文件 类似于引入的意思 该xml文件在struts2—core—2.3.20.jar包内,有兴趣的可以自己查找了看一下。
<package name="myFirst" namespace="/" extends="struts-default">
  • action元素,name为浏览器的访问路径,class为class文件的全路径 method为执行的某个方法,result标签为,该方法return的String值与name名对应起来就走标签内的页面
<action name="login" class="com.qi.controller.LoginAction" method="execute">           <result name="success">/index.jsp</result>        </action>
  • 访问路径还可以写成如下:
<action name="news_*" method="{1}" class="com.qi.controller.LoginAction">       <result name="success">/index.jsp</result>       <result name="error">/world.jsp</result>        </action>
  • 当你的类中拥有两个方法时,如
package com.qi.controller;import com.opensymphony.xwork2.Action;public class LoginAction extends ActionSupport {    public String getUsername() {        return SUCCESS;    }     public String getUsername() {        return ERROR;    }}
  • 运行项目,在地址栏输入,news_error.action,页面会转发至world页面。这个是因为在配置时使用了通配的形式,* 符号与method的{1}对应,在地址栏输入了该类方法的方法名,struts会自动帮你找到该方法,如果没有这个方法则会报错。
原创粉丝点击