`
jiaohuizhe
  • 浏览: 12616 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

简单配置的Struts2

阅读更多

以前配置的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>

 

然后就可以很方便进行进一步的配置和开发了。

 

 

分享到:
评论

相关推荐

    eclipse 配置struts2

    3. **设置Struts2的Filter** - 在Web.xml文件中,我们需要配置Struts2的DispatcherServlet(通常称为StrutsPrepareAndExecuteFilter)。这将使得Struts2可以处理HTTP请求。 ```xml &lt;filter-name&gt;struts2 ...

    一个简单的struts2的手动配置

    Struts2的过滤器名为`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`,我们需要设置其初始化参数和映射路径: ```xml &lt;filter-name&gt;struts2 &lt;filter-class&gt;org.apache.struts2....

    struts2简单例子

    这个“struts2简单例子”是初学者理解Struts2工作原理和核心概念的一个很好的起点。让我们深入探讨一下Struts2的基础知识。 1. **MVC架构**: MVC模式是软件设计中的一个经典模式,它将应用逻辑分为三个主要部分:...

    struts2基本运行环境配置方法

    ### Struts2基本运行环境配置方法 ...通过本文的介绍,读者应能熟练掌握Struts2环境的配置方法,并能够独立完成简单的登录功能开发。在未来的学习和实践中,这些基础知识将为更高级的功能开发打下坚实的基础。

    javaWeb_struts2框架实现简单用户注册登录

    基于javaWeb MVC模式,借助struts2框架编写,实现用户简单的注册与登录功能。 1.本demo严格按照MVC的分层模式采用myeclipse编写,可直接运行,服务器为tomcat,数据库为mysql。 2.数据库操作使用c3p0连接池和dbtuils...

    struts2小程序 struts2代码

    2. **配置文件**:Struts2使用XML配置文件(struts.xml或struts.properties)来定义Action、结果类型、拦截器等。这些配置是理解程序工作流程的关键。 3. **Interceptor拦截器**:拦截器允许在Action执行前后插入...

    Struts2视频教程

    - **Hello Struts2**:通过创建一个简单的“Hello World”示例,帮助开发者快速上手Struts2的基本配置和运行流程。 - **Action类详解**:Action类是Struts2的核心组件之一,负责处理用户的请求并返回相应的结果。...

    留言板留言板struts2留言板struts2

    这个"留言板留言板struts2"项目,显然是一个基于Struts2实现的简单留言板系统,旨在展示Struts2的核心功能和开发流程。下面将详细介绍Struts2框架以及在该项目中可能涉及的关键知识点。 1. **Struts2框架概述**:...

    Eclipse中配置Struts2项目指南

    2. 配置 Struts2:由于现在还没有合适的插件来直接生成 Struts2 的项目,所以我们先创建一个普通的 Web 项目,然后通过简单的配置,使其具备 Struts2 的功能。 在 Eclipse 中配置 Struts2 项目需要按照以上步骤进行...

    struts2 在eclipse 配置成功

    在Eclipse这个流行的Java集成开发环境中配置Struts2,可以帮助开发者更高效地构建动态Web项目。以下将详细介绍如何在Eclipse中成功配置Struts2。 1. **环境准备**: - 首先确保你的系统上已经安装了Java JDK和...

    struts2简单入门教程

    作为一个基于WebWork核心的框架,Struts2在许多方面对Struts1进行了重大改进,包括底层架构、配置方式以及API的使用。 在入门Struts2之前,需要准备以下开发环境和工具: - 开发工具:MyEclipse6(尽管它不直接支持...

    自己配置的struts2 demo

    在这个“自己配置的struts2 demo”中,我们将会探讨Struts2的核心概念、配置步骤以及如何通过源代码实现一个简单的应用。 首先,Struts2框架的核心在于Action类,它是业务逻辑处理的主要组件。在`src`目录下,通常...

    struts2简单实例

    总结,"struts2简单实例"展示了如何使用Struts2框架构建一个简单的学生信息查询功能,涵盖了配置文件、Action实现、数据传输以及视图展示等多个方面,是学习和理解Struts2工作原理的好例子。通过这个实例,开发者...

    最简单的struts2文件

    在这个“最简单的struts2文件”中,我们可以找到构建一个基本Struts2应用所需的组件和配置。下面将详细解释Struts2的核心概念和关键组成部分。 1. **Action类**: 在Struts2中,业务逻辑主要由Action类执行。...

    Struts2简单实例

    4. 创建struts.xml配置文件,这是Struts2的核心配置,包括Action配置、拦截器配置和全局配置。 接下来,我们来实现一个简单的"Welcome" Action。首先,创建一个名为`WelcomeAction`的Java类,继承自`ActionSupport`...

    Struts2配置详解

    ### Struts2配置详解 #### 一、总览 在深入了解Struts2的配置细节之前,我们先来简要概述一下Struts2框架的核心特点及其配置文件的基本结构。Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web...

    传智播客struts2.1视频教程_介绍struts2及struts2开发环境的搭建

    通过这个视频教程,你将能够深入理解Struts2的基本原理和用法,学会如何利用Struts2构建一个简单的Web应用。同时,掌握Struts2的开发环境搭建,有助于你在实际项目中快速上手。传智播客的教程以通俗易懂的方式讲解,...

    struts2入门例子

    实践这个例子,你可以了解到如何设置一个简单的Struts2应用,从而为进一步学习更复杂的特性如国际化、文件上传、异常处理等奠定基础。 总之,Struts2是一个强大的MVC框架,它的核心在于`struts.xml`配置文件,通过...

    实验3 Struts2的简单开发和配置

    ### Struts2的简单开发和配置 #### 实验概述 本次实验主要目的是让学习者能够熟练掌握Struts2框架的基本开发与配置流程。通过实践一个简单的用户登录程序,加深对Struts2工作原理的理解,并能够独立完成Struts2...

Global site tag (gtag.js) - Google Analytics