【J2EE】Struts2.5.10 无法进入Action类的指定方法

Struts2.5.10 版本为了安全考虑 默认是不允许DMI(动态方法访问)的

  解决办法:

    step1.

      struts 标签下添加 <constant name="struts.enable.DynamicMethodInvocation" value="true"/>   //允许DML

    step2.

      <a> action 标签下添加 <allowed-methods>regex:.*</allowed-methods>     //允许DML指定action类方法

      <b> package标签下添加  action <allowed-methods>regex:.*</allowed-methods>    //允许DML所有action类方法:

      <c> 如果想要设置指定方法

          1. 给package标签设置 strict-method-invocation="true"

          2.action 标签下添加 <allowed-methods>方法名</allowed-methods>     //允许DML指定方法

      <d> 设置action标签的method属性(默认为execute)

demo 如下

----------------------------------------------------------

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

<!DOCTYPE struts PUBLIC     "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"     "http://struts.apache.org/dtds/struts-2.5.dtd">

<!-- START SNIPPET: xworkSample -->

<struts>

  <constant name="struts.enable.DynamicMethodInvocation" value="true"/>

   <package name="struts2" extends="struts-default">

     <!--<global-allowed-methods>regex:.*</global-allowed-methods>-->

     <action name="act1" class="Action.Act1">

       <result name="page2">/page2.jsp</result>

       <allowed-methods>regex:.*</allowed-methods>

      </action>

   </package>

</struts>

时间: 2024-10-27 04:35:30

【J2EE】Struts2.5.10 无法进入Action类的指定方法的相关文章

第五课 Struts的控制器【续】Action类的execute()方法

1.Action类的execute()方法: public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException : 2.Action类的execute()方法的参数和返回值: – execute()方法包含以下参数: –ActionMap

strut2基于XML配置方式对Action中的指定方法校验

当校验文件取名为ActionClassName-validation.xml时,会对action中的所有方法进行校验 .如果你需要对action中的某个方法实施校验,那么,校验文件的取名为 ActionClassName-ActionName-validation.xml.其中ActionName为struts.xml 中的action名字. 例如:对UserAction中的add()方法进行校验,校验文件名应该为:UserAction-user_add-validation.xml. User

Struts的Action类

Struts2 是一个用来开发 MVC 应用程序的框架. 它提供了 Web 应用程序开发过程中的一些常见问题的解决方案包括: 对来自用户的输入数据进行合法性验证. 统一的布局. 可扩展性.国际化和本地化.支持 Ajax.表单的重复提交.文件的上传下载等等. 1. action VS Action 类 1). action: 代表的是一个 Struts2 的请求. 2). Action 类: 一个能够处理 Struts2 请求的java类. > 属性的名字必须遵守与 JavaBeans 属性名相同

Struts2系列笔记(3)---Action类的3种书写方式

Action类的3种书写方式 本文主要写有关写Action类的3种书写方式: (1)第一种 Action可以是POJO (简单模型对象)  不需要继承任何父类 也不需要实现任何接口 (2)实现Action接口 (3)继承ActionSupport(推荐) 那我们先来书写第一种: (1)第一种 Action可以是POJO (简单模型对象)  不需要继承任何父类 也不需要实现任何接口 1 //这里其实就是一个普通的类,类里面的方法可以任意写,如果写execute()方法那就代表默认执行它 2 pub

Struts2中的Action类(解耦方式,耦合方式)

一.解耦方式 特点:对web资源进行了封装,便于单元测试. 实现:ActionContext和接口方式 1.ActionContext 特点:Action执行的上下文对象.保存了执行Action所需要的所有对象 使用:1.获取ActionContext  2.获取application,session.request,parameter资源  3.打印显示 1.获取ActionContext ActionContext.getContext() 调用自身的静态方法得到实例 采用的是单例模式 可以

3.Struts2中Action类的三种写法

一.普通的POJO类(没有继承没有实现) public class DemoAction1 { public String execute(){ System.out.println("DemoAction1是普通的POJO类..."); return null; } } <!-- 普通的POJO类 --> <action name="action1" class="com.struts2.web.action2.DemoAction1&

struts2捕获action类异常

首先是STRUTS.XML的配置,重点在于配置文件: <!-- struts2捕获action类异常 --> <global-results> <result name="error">/error.jsp</result> </global-results> <global-exception-mappings> <exception-mapping result="error" exc

Struts2之动态方法调用(优点:调用同一个action中的多个方法不需要在配置文件中写多个指向相同action类的的action节点只需要一个action节点就行)

在表单action值里指定所调用的action中的哪个方法而不是借助配置文件action节点的method属性 1 UserAction类 package org.action; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext;

5.struts2中Action类中获取ServletAPI的三种方式

**Servlet的API的访问(开发中偶尔会使用到)** 1.在Action类中也可以获取到Servlet一些常用的API,有如下三种方式获取 * 完全解耦合的方式 * 使用接口注入的方式 * 使用ServletActionContext中静态方法直接访问Servlet的API * 需求:提供JSP的表单页面的数据,在Action中使用Servlet的API接收到,然后保存到三个域对象中,最后再显示到JSP的页面上. * 提供JSP注册的页面,演示下面这三种方式: <h3>注册页面</