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

S4.6_Struts2_Annotation action动作类使用annotation注解的配置方式

2016-12-13 16:44 555 查看
我们接下来将要创建的项目目录结构如下:



由项目S2.1_Struts2_ByMyEclipse (如何下载它:点击打开链接)复制生成一个新的项目S4.6_Struts2_Annotation

第1步:在src/struts.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>

</struts>

第2步:在WebRoot/WEB-INF/web.xml文件中配置struts的action扫描路径

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="3.0"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

xmlns="http://java.sun.com/xml/ns/javaee" 

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <filter>

    <filter-name>struts2</filter-name>

    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
        <!-- 这里配置struts的action扫描路径 -->

    <init-param>

       <param-name>actionPackages</param-name>

       <param-value>net.nw.action</param-value>

    </init-param>

    <init-param>

       <param-name>encoding</param-name>

       <param-value>UTF-8</param-value>

    </init-param>


  </filter>

  <filter-mapping>

    <filter-name>struts2</filter-name>

    <url-pattern>/*</url-pattern>

  </filter-mapping>

</web-app>

struts2 annotation所建action命名规则:去掉类名的Action部分。然后将每个分部的首字母转为小写,用减号“-”分割驼峰英文单词。

a) 举例:TestAction,那么访问的时候就是test.action,或者test.do或者test(这个根据你的

后缀配置来定);

b) 举例:StudentListAction,那么访问的时候就是student-list.action或者同上。

注意:比如像StudentListAction类,如果你在地址栏输入StudentList是访问不到的,必须输入student-list


第3步:添加注解到LoginAction类上面

package net.nw.action;

import org.apache.struts2.convention.annotation.Namespace;

import org.apache.struts2.convention.annotation.ParentPackage;

import org.apache.struts2.convention.annotation.Result;

import org.apache.struts2.convention.annotation.Results;

import net.nw.dao.UserDao;

import net.nw.vo.User;

@ParentPackage(value="struts-default")

@Namespace(value="/")

//@Result(name="success",location="/login_success.jsp")

@Results({

  @Result(name="login_success",location="/login_success.jsp",type="redirect"),

  @Result(name="login_failure",location="/login_failure.jsp",type="redirect")

})


public class LoginAction {
private String username;//必须与html标签中的名称一样,此处私有变量的值直接来自html标签对应名称填充过来的值
private String password;//必须与html标签中的名称一样,此处私有变量的值直接来自html标签对应名称填充过来的值
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
//调用业务层操作类的方法
public String execute(){
User u = new User();
u.setUsername(this.getUsername());
u.setPassword(this.getPassword());
UserDao dao = new UserDao();
if(dao.userLogin(u)){
return "login_success";
} else{
return "login_failure";
}
}

}

第4步:发布运行程序,效果图如下:
http://localhost:8080/S4.6_Struts2_Annotation/login.jsp


本项目的下载地址:点击打开链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: