以前配置的Struts2的一些配置信息,比较简单方便,一般情况下修改功能和代码的时候基本不需要再修改Struts2的配置文件了。
通过通配符来替代具体的URL和Action及方法信息,只有特殊情况下才有可能对配置进行更进一步的修改。
也配置了Action的拦截器用于权限的判断,后台的调试和输出
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.configuration.xml.reload" value="false" />
<constant name="struts.devMode" value="false" />
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<constant name="struts.enable.SlashesInActionNames" value="true" />
<constant name="struts.serve.static.browserCache" value="false" />
<constant name="struts.i18n.encoding" value="GBK" />
<constant name="struts.multipart.maxSize" value="5120000" />
<constant name="struts.ui.theme" value="simple" />
<package name="default" extends="struts-default">
<interceptors>
<interceptor name="loginInter" class="com.test.struts.filter.ActionFilter" />
<interceptor-stack name="myStack">
<interceptor-ref name="loginInter" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myStack" />
<global-results>
<result name="error">/error.jsp</result>
<result name="CLOSEWINDOW">/close.jsp</result>
<result name="GOTO">/goto.jsp</result>
<result name="POST">/post.jsp</result>
<result name="FORWARD">/forward.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception"
result="error" />
</global-exception-mappings>
<action name="*/*/*" class="com.test.struts.{1}.{2}" method="{3}">
<result name="{3}">/{1}/{2}_{3}.jsp</result>
<result name="LIST">/{1}/{2}_list.jsp</result>
<result name="SHOW">/{1}/{2}_show.jsp</result>
<result name="EDIT">/{1}/{2}_edit.jsp</result>
<result name="QUERY">/{1}/{2}_query.jsp</result>
</action>
</package>
</struts>
Action的拦截器用于权限的判断,后台的调试和输出
ActionFilter.java
public class ActionFilter extends MethodFilterInterceptor{
private static final long serialVersionUID = 0L;
@Override
protected String doIntercept(ActionInvocation arg0) throws Exception {
Map<String,Object> session = arg0.getInvocationContext().getSession();
UserInfo u = (UserInfo)session.get(Constants.CURRENT_PERSON);
String t=DateUtil.getDateTimeString(Calendar.getInstance());
if(u==null){
System.out.println(t+"-----------请求:"+arg0.getProxy().getAction()+"方法>"+arg0.getProxy().getMethod()+"----------");
}else{
System.out.println(t+"-----------"+u.getID()+"_"+u.getLoginName()+"_请求:"+arg0.getProxy().getAction()+"方法>"+arg0.getProxy().getMethod()+"----------");
}
HttpServletRequest request= (HttpServletRequest) arg0.getInvocationContext().get(StrutsStatics.HTTP_REQUEST);
if (u!=null||arg0.getProxy().getAction().getClass().getName().contains("LoginAction")) {
Object act=arg0.getProxy().getAction();
if(act instanceof BaseAction) {
if(!((BaseAction)act).checkPrivilege(arg0.getInvocationContext(),u,arg0.getProxy().getMethod())) {
request.setAttribute("MSG","alert('您无此权限!');");
return "GOTO";
}
}
final String res= arg0.invoke();
if(res!=null&&!res.equals("")) {
String fw=arg0.getProxy().getConfig().getResults().get(res).getParams().get("location");
System.out.println(t+"-----------ForWard页面>"+res+" : "+fw);
}else {
if(id!=0)LogManager.log2(id,":");
}
return res;
}
String path = request.getContextPath();
request.setAttribute("MSG","alert('您尚未登录,请登录后使用该资源!');");
request.setAttribute("URL",path+"/login.jsp");
return "GOTO";
}
}
然后访问的时候通过URL来访问对应的Action和方法,并且有默认的输出页面。
例:
http://localhost/system/LoginAction/login
代表访问com.test.struts.system.LoginAction的login方法
对应的页面:
<result name="login">/system/LoginAction_login.jsp</result>
<result name="LIST">/system/LoginAction_list.jsp</result>
<result name="SHOW">/system/LoginAction_show.jsp</result>
<result name="EDIT">/system/LoginAction_edit.jsp</result>
<result name="QUERY">/system/LoginAction_query.jsp</result>
然后就可以很方便进行进一步的配置和开发了。
相关推荐
3. **设置Struts2的Filter** - 在Web.xml文件中,我们需要配置Struts2的DispatcherServlet(通常称为StrutsPrepareAndExecuteFilter)。这将使得Struts2可以处理HTTP请求。 ```xml <filter-name>struts2 ...
Struts2的过滤器名为`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`,我们需要设置其初始化参数和映射路径: ```xml <filter-name>struts2 <filter-class>org.apache.struts2....
这个“struts2简单例子”是初学者理解Struts2工作原理和核心概念的一个很好的起点。让我们深入探讨一下Struts2的基础知识。 1. **MVC架构**: MVC模式是软件设计中的一个经典模式,它将应用逻辑分为三个主要部分:...
### Struts2基本运行环境配置方法 ...通过本文的介绍,读者应能熟练掌握Struts2环境的配置方法,并能够独立完成简单的登录功能开发。在未来的学习和实践中,这些基础知识将为更高级的功能开发打下坚实的基础。
基于javaWeb MVC模式,借助struts2框架编写,实现用户简单的注册与登录功能。 1.本demo严格按照MVC的分层模式采用myeclipse编写,可直接运行,服务器为tomcat,数据库为mysql。 2.数据库操作使用c3p0连接池和dbtuils...
2. **配置文件**:Struts2使用XML配置文件(struts.xml或struts.properties)来定义Action、结果类型、拦截器等。这些配置是理解程序工作流程的关键。 3. **Interceptor拦截器**:拦截器允许在Action执行前后插入...
- **Hello Struts2**:通过创建一个简单的“Hello World”示例,帮助开发者快速上手Struts2的基本配置和运行流程。 - **Action类详解**:Action类是Struts2的核心组件之一,负责处理用户的请求并返回相应的结果。...
这个"留言板留言板struts2"项目,显然是一个基于Struts2实现的简单留言板系统,旨在展示Struts2的核心功能和开发流程。下面将详细介绍Struts2框架以及在该项目中可能涉及的关键知识点。 1. **Struts2框架概述**:...
2. 配置 Struts2:由于现在还没有合适的插件来直接生成 Struts2 的项目,所以我们先创建一个普通的 Web 项目,然后通过简单的配置,使其具备 Struts2 的功能。 在 Eclipse 中配置 Struts2 项目需要按照以上步骤进行...
在Eclipse这个流行的Java集成开发环境中配置Struts2,可以帮助开发者更高效地构建动态Web项目。以下将详细介绍如何在Eclipse中成功配置Struts2。 1. **环境准备**: - 首先确保你的系统上已经安装了Java JDK和...
作为一个基于WebWork核心的框架,Struts2在许多方面对Struts1进行了重大改进,包括底层架构、配置方式以及API的使用。 在入门Struts2之前,需要准备以下开发环境和工具: - 开发工具:MyEclipse6(尽管它不直接支持...
在这个“自己配置的struts2 demo”中,我们将会探讨Struts2的核心概念、配置步骤以及如何通过源代码实现一个简单的应用。 首先,Struts2框架的核心在于Action类,它是业务逻辑处理的主要组件。在`src`目录下,通常...
总结,"struts2简单实例"展示了如何使用Struts2框架构建一个简单的学生信息查询功能,涵盖了配置文件、Action实现、数据传输以及视图展示等多个方面,是学习和理解Struts2工作原理的好例子。通过这个实例,开发者...
在这个“最简单的struts2文件”中,我们可以找到构建一个基本Struts2应用所需的组件和配置。下面将详细解释Struts2的核心概念和关键组成部分。 1. **Action类**: 在Struts2中,业务逻辑主要由Action类执行。...
4. 创建struts.xml配置文件,这是Struts2的核心配置,包括Action配置、拦截器配置和全局配置。 接下来,我们来实现一个简单的"Welcome" Action。首先,创建一个名为`WelcomeAction`的Java类,继承自`ActionSupport`...
### Struts2配置详解 #### 一、总览 在深入了解Struts2的配置细节之前,我们先来简要概述一下Struts2框架的核心特点及其配置文件的基本结构。Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web...
通过这个视频教程,你将能够深入理解Struts2的基本原理和用法,学会如何利用Struts2构建一个简单的Web应用。同时,掌握Struts2的开发环境搭建,有助于你在实际项目中快速上手。传智播客的教程以通俗易懂的方式讲解,...
实践这个例子,你可以了解到如何设置一个简单的Struts2应用,从而为进一步学习更复杂的特性如国际化、文件上传、异常处理等奠定基础。 总之,Struts2是一个强大的MVC框架,它的核心在于`struts.xml`配置文件,通过...
### Struts2的简单开发和配置 #### 实验概述 本次实验主要目的是让学习者能够熟练掌握Struts2框架的基本开发与配置流程。通过实践一个简单的用户登录程序,加深对Struts2工作原理的理解,并能够独立完成Struts2...