Gradle搭建Struts 2.5.14.1基于注解的的开发环境

注意:很多人使用开发工具时基于xml可以,但是注解时无法访问action,

主要原因是没配置struts.convention.exclude.parentClassLoader=false

文件结构

(1)build.gradle内容

//要使用gradle运行时,避免出错,可以使用tomcatRun运行
apply plugin: 'war'
//以下二选一,都是加载gretty插件
//1.选择下面方式时,优点是:不需要做任何操作,缺点是:不支持离线运行,网络不好或者是github访问异常时无法运行
//apply from: 'https://raw.github.com/akhikhl/gretty/master/pluginScripts/gretty.plugin'
//2.选择下面方式时,优点是:支持离线运行,网络不好时也可以运行,缺点是:需要将上一步的文件提前下载下来。
apply from:'gretty.plugin'
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
repositories {
    jcenter()
}
dependencies {
//配置Struts的依赖包
compile group: 'org.apache.struts', name: 'struts2-core', version: '2.5.14.1'
//注解时需要添加的插件
compile group: 'org.apache.struts', name: 'struts2-convention-plugin', version: '2.5.14.1'
//通过config-browser-plugin动态查看当前的Action对象
//compile group: 'org.apache.struts', name: 'struts2-config-browser-plugin', version: '2.5.14.1'

//配置log4j日志依赖包
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.10.0'
}

(1-1)gretty-plugin

gretty.plugin内容

buildscript {
  repositories {
    jcenter()
  }

  dependencies {
    classpath 'org.akhikhl.gretty:gretty:2.0.0'
  }
}


repositories {
  jcenter()
}


if (!project.plugins.findPlugin(org.akhikhl.gretty.GrettyPlugin))
  project.apply(plugin: org.akhikhl.gretty.GrettyPlugin)



(2)settings.gradle内容

rootProject.name = 'struts2-anotation'

(3)web.xml内容

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd ">

<display-name>Struts2.5</display-name>
<description>Struts2.5 Anotation Demo</description>
<filter>
<filter-name>Struts2.5</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Struts2.5</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jhtml</welcome-file>
</welcome-file-list>
</web-app>

(4)struts.properties内容(因为这里是注解,所以连struts.xml也一块去掉了)

struts.devMode=true
struts.action.extension=jhtml,,
struts.convention.exclude.parentClassLoader=false

(5)IndexAction.java内容

package cn.gov.tzjyxx.actions;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Actions;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;


import com.opensymphony.xwork2.ActionSupport;


@ParentPackage("struts-default")
public class IndexAction extends ActionSupport {

private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}


@Action(value="index",results={@Result(location="index.jsp")})
public String execute() throws Exception {
setMessage("成功与否看:struts.convention.exclude.parentClassLoader=false");
return SUCCESS;
}
}

(6)LoginAction内容

package cn.gov.tzjyxx.actions;


import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;


import com.opensymphony.xwork2.ActionSupport;


@ParentPackage("struts-default")
public class LoginAction extends ActionSupport {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

@Override
@Action(value="login",results={@Result(location="success.jsp"),@Result(name="input",location="error.jsp")})
public String execute() throws Exception {
if("admin".equals(getName()) && "23296926".equals(getPassword()))
{
return SUCCESS;
}else{
return INPUT;
}
}


}

index.jsp  error.jsp  success.jsp内容略。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值