struts 设置默认 action

struts 如何设置默认action呢?

我要达到的目的是:访问不存在的action时自动跳转到默认的action

在struts.xml中添加:

 

Java代码  

  1. <!-- 404页面 -->  
  2.         <default-action-ref name="notFound" />  
  3. <action name="notFound" class="com.common.action.error.NotFoundErrerAction">  
  4.             <result name="success">/error/not_found.jsp</result>  
  5.         </action>  

 效果如下:

 action  aaa/xxx.action 不存在,所以自动跳转到了notFound.

 

 

但是现在有一个问题,如果我的url是http://localhost:8082/shop_goods/acc 时,界面如下:

 这是为什么呢?

我检查我的web.xml发现struts 过滤器配置如下:

<filter>

    <filter-name>struts2</filter-name>

    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

  </filter>

  <filter-mapping>

    <filter-name>struts2</filter-name>

    <url-pattern>*.action</url-pattern>

  </filter-mapping>

 

所以struts只会处理url后缀名为action的,比如xxx.action,abc.action.

解决方法:struts 过滤器配置改为:

 

Xml代码  

  1. <filter>  
  2.     <filter-name>struts2</filter-name>  
  3.     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
  4.   </filter>  
  5. <filter-mapping>  
  6.     <filter-name>struts2</filter-name>  
  7.     <url-pattern>/*</url-pattern>  
  8.   </filter-mapping>  

 

 

修改之后的效果:

 

 

如果struts过滤器非要使用*.action呢?

那么需要在web.xml中添加:

 

Xml代码  

  1. <error-page>  
  2.             <error-code>404</error-code>  
  3.             <location>/error/not_found.jsp</location>  
  4.         </error-page>  

 这样,访问http://localhost:8082/shop_goods/acc 也会自动跳转到/error/not_found.jsp

 

注意:上述页面(/error/not_found.jsp)不能有struts 标签

时间: 2025-01-31 01:31:45

struts 设置默认 action的相关文章

&amp;amp;lt;s:date标签如何设置默认为系统时间

问题描述 <s:date标签如何设置默认为系统时间 <input type=""text"" name=""chuKu.maoZhongChengZhongShiJian"" class=""Wdate"" value=""<s:date name=""endTime"" format=""

Android中检查、设置默认程序详解_Android

Android作为一个伟大的系统,自然提供了设置默认打开程序的实现.在这篇文章中,我会介绍如何在Android系统中设置默认的程序. 在设置默认程序之前,无非有两种情况,一种是已经有默认的程序,另一种则是没有任何默认程序. 检测是否有默认的程序 检查是必须的,因为结果关乎着我们下一步该怎么做. 复制代码 代码如下: public void testGetDefaultActivity() {     PackageManager pm = mContext.getPackageManager()

Struts2 配置包默认Action学习笔记

当我们前台请求发送到 struts 框架的时候,如果这个时候发送的请求在strtus.xml中没配置,则会出现一下错误: HTTP Status 404 - There is no Action mapped for namespace / and action name dasddion. 1.例如我们前台请求是:      loginAction 2.我们的struts配置文件内容如下:  代码如下 复制代码 <?xml version="1.0" encoding=&quo

Android中检查、设置默认程序详解

Android作为一个伟大的系统,自然提供了设置默认打开程序的实现.在这篇文章中,我会介绍如何在Android系统中设置默认的程序. 在设置默认程序之前,无非有两种情况,一种是已经有默认的程序,另一种则是没有任何默认程序. 检测是否有默认的程序 检查是必须的,因为结果关乎着我们下一步该怎么做. 复制代码 代码如下: public void testGetDefaultActivity() {     PackageManager pm = mContext.getPackageManager()

[Android]为Spinner填充数据后设置默认值的问题

前言 为Spinner适配完数据后需要设置其默认选项,但是发现直接setSelection(int position)有时候不管用,打开选项又发现已经选中了,但是显示出来的选项又始终默认第一个,本文为文章1的中文简单译本.   文章 1. Using spinner.setSelection & finding the spinner doesn't show the selected item when closed?   声明 欢迎转载,但请保留文章原始出处:)  博客园:http://ww

Struts中的Action类的工作机制

Struts中的Action类的工作机制  所有的Action类都是org.apache.struts.action.Action的子类.Action子类应该覆写父类的execute()方法.当ActionForm Bean被创建,并且表单验证顺利通过后,Struts框架就会调用Action类的execute()方法.execute()方法的定义如下:    public ActionForward execute(ActionMapping mapping                   

MySQL表字段设置默认值

环境 MySQL 5.1 + 命令行工具 问题 MySQL表字段设置默认值 解决 --SQL: CREATE TABLE test( i_a int NOT NULL DEFAULT 1, ts_b timestamp NOT NULL DEFAULT NOW(), c_c char(2) NOT NULL DEFAULT '1' ); --以下SQL不合法 --time_d time NOT NULL DEFAULT CURTIME(), --date_e date NOT NULL DEFA

在Word 2010文档中设置默认粘贴选项

用户可以在Word 2010文档中设置默认粘贴选项,以适应在各种条件下的粘贴需要,操作步骤如下所述: 第1步,打开Word 2010文档窗口,依次单击"文件"→"选项"按钮,如图2010010802所示. 图2010010802单击"选项"按钮 第2步,在打开的"Word选项"对话框中切换到"高级"选项卡,在"剪切.复制和粘贴"区域可以针对粘贴选项进行设置.默认粘贴选项各项目的含义简述如

在Word 2007中设置默认表格样式

默认情况下,在Word2007中插入的表格均默认使用普通样式.用户可以将表 格样式库中最常用的表格样式作为默认样式,使新插入的表格都使用该样式,操 作步骤如下所述: 第1步,打开Word2007文档窗口,首先插入任意格式的表格.单击新建的表格 ,在打开"表格工具"功能区中切换到"设计"选项卡.然后在"表样式"分组 中右键单击任意表格样式,选择"设为默认值"命令,如图2009020615所示. 图2009020615 选择&qu