`
coral0212
  • 浏览: 100127 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

关于struts2的命名空间和jsp页面中路径问题

阅读更多
http://brightmyfuture.blog.sohu.com/116716733.html

    经常被Jsp、Servlet中相对路径和绝对路径问题给搅匀,今天被这个问题结合Struts2的namespace彻底弄的找不到北了,研究了一天,终于大彻大悟,彻底搞懂了这个问题,赶快记下来。
    页面脚本有两种状态,分别是在IDE中的Develop状态以及部署在Web Server以后的运行状态。这两种状态的相对路径是完全不一样的,如果在这混淆了那代码在部署运行后崩溃的几率达到十有八九了。在IDE中的 Develop状态相对的是真实的本页面的相对路径,而在Web Server中处于运行状态的相对路径就不在是前面所述了,而是相对于URL的路径。
  比如配置了如下片段:
<struts>
     <package name="oss" extends="struts-default">  
        <action name="login" class="trh.oss.action.login.LoginRegisterAction">
            <result name="success">/login.jsp</result>
        </action>    
        <action name="*">
            <result>/pages/{1}.jsp</result>
       </action>  
    </package>  
</struts>
    假设有一个访问请求http://localhost:8080/oss/register.action,Struts2的FilterDispatcher将返还register.jsp页面,在物理文件路径上目录结构如下:
/pages
------register.jsp
------registeritem.jsp
------/images
-------------Main_Top.htm
-------------Main_Left_register.htm
-------------Main_Bottom.htm
    register.jsp处于IDE中(如果不用IDE,在本地文件系统中也是一样的)代码如下:
<%@ page language="java" contentType="text/html; charset=gbk"
    pageEncoding="gbk"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>用户注册</title>
        <meta http-equiv=Content-Type content="text/html; charset=gb2312">
        <meta content="MSHTML 6.00.2900.2668" name="generator">
    </head>
    <frameset border="0" frameSpacing="0" rows="118,*,22" frameBorder="no" cols="*">
        <frame name="topFrm" src="images/Main_Top.htm" noResize scrolling="no">
        <frameset border="0" frameSpacing="0" rows="*" frameBorder="no" cols="180,*">
            <frame name="leftFrm" src="images/Main_Left_register.htm" frameBorder="0" noResize>
            <frame name="rightFrm" src="registeritem.jsp" frameBorder="0">
        </frameset>
        <frame name="bottomFrm" src="images/Main_Bottom.htm" noResize scrolling="no">
    </frameset>
    <noframes></noframes>
</html>
    OK!没有任何的问题,可以正常显示。然后令人郁闷的是将其部署在Server上崩溃了,我上午调了一上午,用尽各种办法,什么根路径,什么basePath之类的全用了,就是崩溃,就是不行。
    原因在哪?相对路径是相对URL的路径,不是相对本地文件系统的路径。在本地开发的时候相对的是本地文件系统的路径,而在服务器上运行的时候是相对于 URL的访问路径。故怎么办呢?已经说的很简单了,Struts2的核心有两个组件分别是Action组件和拦截器组件,Struts2是用 Package对其进行管理的,定义包的时候有一个属性叫做namespace,将其制定为pages就一切OK了。
    这样一个完整的请求响应过程为如下:
    1.客户端发出http://localhost:8080/oss/pages/register.action
    2.服务器断Struts2的核心控制器FilterDispatcher截获此请求,用

<action name="*">这个Action的定 义来匹配此请求,并返还/pages/register.jsp物理视图资源,此页面中用到了四个相对路径,全都是相对http://localhost:8080/oss/pages的相对路径。
    3.回传给客户端生成的静态页面。
    一切OK了!路径啊路径,很神奇。
分享到:
评论

相关推荐

    struts2+spring2+ibates

    3、struts.xml中命名空间和拦截器的使用。 4、sqlmapconfig.xml中传入参数和result的设置,只需要将得到的值result映射到有此属性的类对象. 5、JSP/Servlet中获得当前应用的相对路径和绝对路径 JSP中获得当前应用的...

    Struts2 Convention Plugin中文文档 Annotion

    • 命名习惯制定结果(支持JSP,FreeMarker等)路径 • 类名到URL的约定转换 • 包名到命名空间(namespace)的约定转换 • 遵循SEO规范的链接地址(即:使用my-action 来替代 MyAction) • 基于注解的Action名 • ...

    struts2注解详细说明

    • 包命名习惯来指定Action位置• 命名习惯制定结果(支持JSP,FreeMarker等)路径• 类名到URL的约定转换• 包名到命名空间(namespace)的约定转换• 遵循SEO规范的链接地址(即:使用my-action 来替代 ...

    jfreechar 整合struts2.1.8版本生成线图,饼图,柱形图

    -- include节点是struts2中组件化的方式 可以将每个功能模块独立到一个xml配置文件中 然后用include节点引用 --&gt; &lt;include file="struts-default.xml"&gt; &lt;!-- package提供了将多个Action组织为一个模块的方式 ...

    java命名规范 开发规范

    2. 包的设计、页面的层次结构设计(jsp/css/js等文件的结构); 3. log、异常(声明式异常)的约定设计; 4. 链接、按钮、表单提交的统一方式;通用式Ajax调用与页面跳转统一模型; 5. 响应一个请求的分层结构约定...

    Myeclipse开发struts+hibernate+spring新手入门--环境配置---项目开发示例

    在弹出的菜单中,根据图例提示,选择Myeclipse后在弹出的二级菜单中选择Add Struts Capabilities…后提示如下图所示: 在弹出的对话框中,设置如下: Struts config path:默认,一般不需要改变。 Struts ...

    convention-plugin.doc

    从struts2.1版本开始,Convention Plugin作为替换替换Codebehind Plugin来实现Struts2的零配置。 • 包命名习惯来指定Action位置 • 命名习惯制定结果(支持JSP,FreeMarker等)路径 • 类名到URL的约定转换 • 包名...

    SSH整合开发框架,可直接用于开发

    jsp文件统一放入WEB-INF下的jsp文件夹中,这个在struts配置文件中可以看到,默认的页面放置文件夹是WEB-INF/jsp 4、新建模块时,建议不同模块的采用不同的action命名空间也就是namespace,方便页面的管理。 5、...

    spring security 参考手册中文版

    26.2.2 Web安全表达式中的路径变量 204 26.3方法安全表达式 204 26.3.1 @Pre和@Post注释 205 访问控制使用@PreAuthorize和@PostAuthorize 205 使用@PreFilter和@PostFilter进行过滤 207 26.3.2内置表达式 207 ...

    客户关系管理系统框架搭建(二)

    * 引入命名空间 bean tx context aop xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx=...

    Spring面试题

    AOP 和 IOC 是补充性的技术,它们都运用模块化方式解决企业应用程序开发中的复杂问题。在典型的面向对象开发方式中,可能要将日志记录语句放在所有方法和 Java 类中才能实现日志功能。在 AOP 方式中,可以反过来将...

    李兴华Java Web开发实战经典(高清版) Part2

    7.2、在JSP中使用JavaBean 7.2.1、WEB开发的标准目录结构 7.2.2、使用JSP的page指令导入所需要的JavaBean 7.2.3、使用&lt;jsp:useBean&gt;指令 7.3、JavaBean与表单 7.4、设置属性:&lt;jsp:setProperty&gt; 7.4.1、设置...

    java web 视频、电子书、源码(李兴华老师出版)

    7.2、在JSP中使用JavaBean 7.2.1、WEB开发的标准目录结构 7.2.2、使用JSP的page指令导入所需要的JavaBean 7.2.3、使用&lt;jsp:useBean&gt;指令 7.3、JavaBean与表单 7.4、设置属性:&lt;jsp:setProperty&gt; 7.4.1、设置...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    7.2、在JSP中使用JavaBean 7.2.1、WEB开发的标准目录结构 7.2.2、使用JSP的page指令导入所需要的JavaBean 7.2.3、使用&lt;jsp:useBean&gt;指令 7.3、JavaBean与表单 7.4、设置属性:&lt;jsp:setProperty&gt; 7.4.1、设置...

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    7.2、在JSP中使用JavaBean 7.2.1、WEB开发的标准目录结构 7.2.2、使用JSP的page指令导入所需要的JavaBean 7.2.3、使用&lt;jsp:useBean&gt;指令 7.3、JavaBean与表单 7.4、设置属性:&lt;jsp:setProperty&gt; 7.4.1、设置...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    7.2、在JSP中使用JavaBean 7.2.1、WEB开发的标准目录结构 7.2.2、使用JSP的page指令导入所需要的JavaBean 7.2.3、使用&lt;jsp:useBean&gt;指令 7.3、JavaBean与表单 7.4、设置属性:&lt;jsp:setProperty&gt; 7.4.1、设置...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 下

    7.2、在JSP中使用JavaBean 7.2.1、WEB开发的标准目录结构 7.2.2、使用JSP的page指令导入所需要的JavaBean 7.2.3、使用&lt;jsp:useBean&gt;指令 7.3、JavaBean与表单 7.4、设置属性:&lt;jsp:setProperty&gt; 7.4.1、设置...

    李兴华Java Web开发实战经典.pdf (高清版) Part1

    7.2、在JSP中使用JavaBean 7.2.1、WEB开发的标准目录结构 7.2.2、使用JSP的page指令导入所需要的JavaBean 7.2.3、使用&lt;jsp:useBean&gt;指令 7.3、JavaBean与表单 7.4、设置属性:&lt;jsp:setProperty&gt; 7.4.1、设置...

    李兴华 Java Web 开发实战经典 高清扫描版Part3

    7.2、在JSP中使用JavaBean 7.2.1、WEB开发的标准目录结构 7.2.2、使用JSP的page指令导入所需要的JavaBean 7.2.3、使用&lt;jsp:useBean&gt;指令 7.3、JavaBean与表单 7.4、设置属性:&lt;jsp:setProperty&gt; 7.4.1、设置...

    Spring中文帮助文档

    4.7.2. Application context构造器中资源路径的通配符 4.7.3. FileSystemResource 说明 5. 校验,数据绑定,BeanWrapper,与属性编辑器 5.1. 简介 5.2. 使用Spring的Validator接口进行校验 5.3. 从错误代码到...

Global site tag (gtag.js) - Google Analytics