`
imp860124
  • 浏览: 42219 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

修改struts2 显示的URL 后缀 .action 为 .jsp

阅读更多

【转】修改struts2 显示的URL 后缀 .action 为 .jsp

 

正在用 SSH(struts2.0+spring3.0+hibernate2.0)开发一个项目,但是struts2.0 请求action 后转到的页面的后缀都成了XXX_XXXX.action (我用的通配符设置的action).看着很是不习惯,需要修改!!!

     (前台的页面显示需要数据库中的数据,所以显示之前必须访问数据库!!)

 

解决方案:

  1,开始想用Ajax技术。来取得数据库的数据。但一旦数据量过大或过于凌乱,则是个大问题!

 

  2,由于struts2.0 访问数据库之后,页面显示的url 都是访问的action 的名字。现在考虑修改struts2.0的拦截器的拦截后缀。(默认为.action,现想修改为.jsp)如此以来,则前台的URL 就不会出现XXX_XXXX.action ,而是XXX.jsp.

  

 查阅资料:得到:  可以在 struts.xml  配置文件中 修改 拦截器的拦截属性:

            修改struts.xml文件,在<struts></struts>中加入下面这句话。

Xml代码 复制代码
  1. <constant name="struts.action.extension" value="action,jsp" />   
              <constant name="struts.action.extension" value="action,jsp" /> 

 

如此以来,strtus2.0 就开始 拦截 后缀为 .action 和 .jsp 的请求。

 

例:如果访问的页面为 index.jsp

  struts.xml  代码为

Java代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <!DOCTYPE struts PUBLIC   
  3.         "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  4.         "http://struts.apache.org/dtds/struts-2.0.dtd">   
  5. <struts>   
  6.     <!-- 程序国际化 指定国际化资源文件 -->   
  7.     <constant name="struts.custom.i18n.resources"  
  8.         value="ApplicationResources" />   
  9.     <constant name="struts.i18n.encoding" value="gb2312" />   
  10.     <constant name="struts.i18n.reload" value="false"></constant>   
  11.     <constant name="struts.action.extension" value="action,jsp" />   
  12.     <!-- 设置上传文件时不要Tomcat的临时路径,使用设置的值 -->   
  13.     <constant name="struts.multipart.saveDir" value="/temp" />   
  14.     <!-- 设置上传文件大小 -->   
  15.     <constant name="struts.multipart.maxSize" value="524280" />   
  16.     <package name="outlook" extends="struts-default">   
  17.         <global-results>   
  18.             <!-- 下面定义的结果对所有的Action都有效 -->   
  19.             <result name="exception">/error.jsp</result>   
  20.         </global-results>   
  21.         <global-exception-mappings>   
  22.             <!-- 指Action抛出Exception异常时,转入名为exception的结果。 -->   
  23.             <exception-mapping exception="java.lang.Exception"  
  24.                 result="exception" />   
  25.         </global-exception-mappings>   
  26.     </package>   
  27.     <!-- 网站后台配置 -->   
  28.     <package name="Outlook" extends="struts-default" namespace="/">   
  29.         <interceptors>   
  30.             <!-- 定义了一个名为authority的拦截器 -->   
  31.             <interceptor name="authority"  
  32.                 class="org.boss.action.AuthorityInterceptor">   
  33.             </interceptor>   
  34.         </interceptors>   
  35.         <!-- 定义全局Results -->   
  36.         <global-results>   
  37.             <result name="success">/barhome/success.jsp</result>   
  38.             <result name="none">/barhome/doerror.jsp</result>   
  39.             <result name="exception">/barhome/error.jsp</result>   
  40.         </global-results>   
  41.         <global-exception-mappings>   
  42.             <!-- 指Action抛出Exception异常时,转入名为exception的结果。 -->   
  43.             <exception-mapping exception="java.lang.Exception"  
  44.                 result="exception" />   
  45.         </global-exception-mappings>   
  46.         <action name="index" class="org.boss.action.OutLookAction">   
  47.             <result name="goindex">/home.jsp</result>   
  48.         </action>   
  49.     </package>   
  50. </struts>  
<?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.custom.i18n.resources"
		value="ApplicationResources" />
	<constant name="struts.i18n.encoding" value="gb2312" />
	<constant name="struts.i18n.reload" value="false"></constant>
	<constant name="struts.action.extension" value="action,jsp" />
	<!-- 设置上传文件时不要Tomcat的临时路径,使用设置的值 -->
	<constant name="struts.multipart.saveDir" value="/temp" />
	<!-- 设置上传文件大小 -->
	<constant name="struts.multipart.maxSize" value="524280" />
	<package name="outlook" extends="struts-default">
		<global-results>
			<!-- 下面定义的结果对所有的Action都有效 -->
			<result name="exception">/error.jsp</result>
		</global-results>
		<global-exception-mappings>
			<!-- 指Action抛出Exception异常时,转入名为exception的结果。 -->
			<exception-mapping exception="java.lang.Exception"
				result="exception" />
		</global-exception-mappings>
	</package>
	<!-- 网站后台配置 -->
	<package name="Outlook" extends="struts-default" namespace="/">
		<interceptors>
			<!-- 定义了一个名为authority的拦截器 -->
			<interceptor name="authority"
				class="org.boss.action.AuthorityInterceptor">
			</interceptor>
		</interceptors>
		<!-- 定义全局Results -->
		<global-results>
			<result name="success">/barhome/success.jsp</result>
			<result name="none">/barhome/doerror.jsp</result>
			<result name="exception">/barhome/error.jsp</result>
		</global-results>
		<global-exception-mappings>
			<!-- 指Action抛出Exception异常时,转入名为exception的结果。 -->
			<exception-mapping exception="java.lang.Exception"
				result="exception" />
		</global-exception-mappings>
		<action name="index" class="org.boss.action.OutLookAction">
			<result name="goindex">/home.jsp</result>
		</action>
	</package>
</struts>

 

action 的代码

Java代码 复制代码
  1. public String execute()throws Exception{   
  2.         this.getChannel();// 网站频道信息   
  3.            
  4.         return "goindex";   
  5.     }  
public String execute()throws Exception{
		this.getChannel();// 网站频道信息
		
		return "goindex";
	}

 

OK ,问题解决!!现在URL的显示正常了。!!

分享到:
评论

相关推荐

    java struts如何隐藏提交后缀.action, .do.zip

    对于Struts2,可以使用`&lt;action&gt;`标签的`namespace`和`name`属性,结合`result`配置来构建无后缀的URL。 2. **使用Filter**: 可以创建一个Servlet Filter,拦截所有的HTTP请求,然后修改请求的URI,将`.action`或...

    去掉.action去掉.do字样 隐藏struts2 URL地址action, strus1的扩展名do也是同理.zip

    Struts2和Struts1是两个非常著名的Java Web框架,它们在处理请求时通常会在URL中显式地显示.action或.do后缀。然而,为了提供更友好的用户体验和增强安全性,有时我们需要隐藏这些扩展名。本篇文章将详细介绍如何在...

    struts2改写url后缀demo

    在Struts2中,URL通常以`.do`结尾,这是默认的Action映射后缀。然而,为了提供更加用户友好的URL和提高搜索引擎优化(SEO),开发者可能希望将这些后缀更改为更自然的扩展名,如`.html`。本教程将深入探讨如何在...

    STRUTS2 Convention零配置

    - **Action类的位置**:Convention插件会默认扫描特定包下的Action类,例如`action`, `actions`, `struts`, `struts2`等包名下的Java文件会被视为Action。 - **Action类的命名规则**:按照约定,如果Action类名为`...

    Struts2属性文件详解

    此属性指定了需要Struts 2处理的请求后缀,默认值为`action`,即所有匹配`*.action`的请求都将由Struts 2处理。如果需要指定多个请求后缀,可以用英文逗号`,`分隔。 #### struts.serve.static 设置了是否通过JAR...

    struts2 上传图片限制.

    ### Struts2 上传图片限制详解 #### 一、Struts2框架介绍 Struts2是一个基于MVC架构模式的Java Web开发框架,它能够帮助开发者构建强大的企业级应用程序。Struts2支持拦截器、类型转换、文件上传/下载等功能,并且...

    struts2注解使用.doc

    - 视图资源的查找遵循`actionURL+resultCode+suffix`的模式,例如`login-success.jsp`对应于`success`结果,`login-input.jsp`对应于`input`结果。 **Config Browser 插件** - 为了查看和调试Struts2应用中的Action...

    STRUTS2零配置.doc

    为了方便查看Struts2应用中的Action和资源映射,Struts2提供了一个Config Browser插件。只需将相关插件库添加到项目,并配置相应拦截器,即可在运行时查看所有配置信息。 总的来说,Struts2的Convention插件极大地...

    Struts2中struts_xml的Action配置详解

    在这个例子中,`saveUser`是Action的名称,当用户发送一个以`saveUser`为后缀的请求时,Struts2会将该请求映射到`SaveUserAction`类。 `class`属性指定Action的实现类,即处理请求的Java对象。这个类通常需要继承自...

    Struts2注解详细说明文档

    例如,可以设置`struts.convention.action.suffix`来指定Action类名的后缀,默认为`Action`。 ```xml &lt;constant name="struts.convention.action.suffix" value="Controller"/&gt; ``` ##### 3.3 REST支持 如果希望...

    Struts2环境.doc

    例如,“struts.i18n.encoding”设置默认的字符编码为UTF-8,而“struts.action.extension”定义了Struts2处理的请求后缀,默认为“do”。 - `&lt;package&gt;`元素定义了一个包,它包含一组相关的动作。每个包可以扩展...

    struts 三种配置方式.txt

    2. **使用通配符**:适合需要区分不同方法的情况,通过Action名称中的后缀来决定调用哪个方法。 3. **动态方法调用**:提供了更高的灵活性,允许用户在请求URL中直接指定方法名。 了解这些配置方式有助于更好地管理...

    Struts2注解使用说明文档

    2. **自动扫描**:默认情况下,它会搜索`action`,`actions`,`struts`,`struts2`这些包下的类。如果类实现了`com.opensymphony.xwork2.Action`接口或者类名以`Action`结尾,那么这些类会被视为Action。 3. **可...

    简述STRUTS2_Convention零配置

    如果类名包含"Action"后缀,它会被去掉,然后将驼峰式命名转换为中划线分隔的格式。比如,`LoginAction`会被映射为`login`,`GetBooks`映射为`get-books`,`AddEmployeeAction`映射为`add-employee`。 此外,关于...

    MyFramework - struts2 零配置:convention

    此外,结果页面的名称默认为方法名加`.jsp`后缀,位于`struts.convention.result.path`指定的目录下。 例如,一个处理用户列表请求的`UserAction`类可能如下: ```java public class UserAction { public String ...

    Struts-Localization-Example.zip_localization

    在Action类中,可以通过`ActionMessages`或`ActionErrors`对象来获取和显示消息。在JSP页面中,我们可以使用JSTL的`fmt`库或者Struts的`&lt;html:text&gt;`、`&lt;html:errors&gt;`等标签来引用资源文件中的内容。 为了根据用户...

    浪曦struts2视频源码.pdf

    总结来说,文件内容涉及了Struts2框架的Action映射、业务逻辑处理、验证机制、结果页面跳转以及JSP页面与Struts2之间的交互。这些知识点在Web应用开发中具有广泛的运用,并且是Java Web开发工程师必须掌握的核心技能...

    Struts2配置精要之常量constant配置详解(包括零配置Convention 的常量)

    - `struts.convention.action.suffix`: 设置Action类的默认后缀,通常默认为`.action`。 了解了常量配置后,我们来看看`Struts2零配置实现.docx`文档可能包含的内容。这份文档可能详细解释了如何利用Convention实现...

Global site tag (gtag.js) - Google Analytics