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

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

2018-01-14 11:20 435 查看
注意:很多人使用开发工具时基于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内容略。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: