`
steve_gu
  • 浏览: 32735 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

Struts2中的url-pattern带来的一个引入js,css的问题

阅读更多
注册页面中用到了<s:head theme="ajax" />来引入dojo,做了一个简单的检测用户名是否存在的ajax效果。昨天还好好的,今天页面装载后就报"dojo未定义"的js错误。打开浏览器的查看源代码,tag起效了,在浏览器地址栏中敲struts/dojo/dojo.js,确实找不到文件。奇了怪了,是不是谁把struts包里的dojo文件给删除了?一顿好找,没问题。干脆新建一个jsp,只放<s:head theme="ajax" />,直接对其访问,坏了,jsp页面甩出一大堆错误,在org.apache.struts2.views.jsp.TagUtils.getStack(TagUtils.java:58)中抛出了NullPointerException。翻出源代码,一顿找,问题出现在

           
Dispatcher du = Dispatcher.getInstance();

Map extraContext = du.createContextMap(new RequestMap(req),
        req.getParameterMap(),
        new SessionMap(req),
        new ApplicationMap(pageContext.getServletContext()),
        req,
        res,
        pageContext.getServletContext());


调试显示du为null。该request的Dispatcher没初始化?赶紧到web.xml看看,原来

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>
            org.apache.struts2.dispatcher.FilterDispatcher
        </filter-class>
    </filter>
    
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>*</url-pattern>
    </filter-mapping>


被同事改为

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>
            org.apache.struts2.dispatcher.FilterDispatcher
        </filter-class>
    </filter>
    
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>*.action</url-pattern>
    </filter-mapping>


这样.jsp文件没走FilterDispatcher,Dispatcher du = Dispatcher.getInstance()当然为null了。原来struts的tag用法比较严格:所在jsp必须经过FilterDispatcher。突然灵光一现,由此及彼,jsp不好用了,js,css不也一样的道理吗?遂赶紧加上:

   
<filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/struts/*</url-pattern>
    </filter-mapping>


测试通过。
分享到:
评论
4 楼 juliancg65 2008-11-02  
我打地址访问不到dojo.js
确实在head里面加了<s:head />
希望能够指点我一下
3 楼 yangpeihai 2008-10-22  
非常感谢steve_gu,那像楼上的问题要怎么解决啊?
2 楼 javaRwx 2007-10-12  
这样一来是不是在jsp页面中所有的form的action属性后边都要加上.action后缀? 如:
<s:form action="Login.action" method="POST">
</s:form>
使用
<filter-mapping> 
    <filter-name>struts2</filter-name> 
    <url-pattern>*.action</url-pattern> 
</filter-mapping> 
配置的时候是不用加后缀.action的
1 楼 zhang20084 2007-09-22  
<url-pattern>/*</url-pattern>
我这样还是显示dojo未定义错误啊

相关推荐

    struts2-dojo-plugin-2.2.1.jar

    Struts2-dojo-plugin-2.2.1.jar 是一个针对Apache Struts2框架的扩展插件,主要用于增强Struts2应用的用户界面交互性,特别是通过集成Dojo JavaScript库来提供丰富的AJAX功能和用户体验。这个插件是Struts2与Dojo ...

    struts2-ssl-plugin-1.2.1.jar

    struts2-ssl-plugin-1.2.1.jar

    json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar

    `struts2-json-plugin-2.1.8.1.jar` 则是Struts 2框架的一个插件,主要用于增强Struts 2对JSON的支持。Struts 2是一款非常流行的MVC(Model-View-Controller)框架,用于构建企业级的Java Web应用程序。这个插件允许...

    struts2-spring-plugin-2.3.4.jar

    Struts2-Spring-Plugin-2.3.4.jar 是一个专门为 Struts 2 框架和 Spring 框架整合而设计的插件,主要用于处理 Struts 2 和 Spring 之间的集成问题。在Java Web开发中,这两个框架经常一起使用,Spring 提供了依赖...

    struts2-sitemesh-plugin-2.2.1.1.jarstruts2

    Struts2是一个非常流行的Java Web开发框架,它提供了一种模型-视图-控制器(MVC)架构,帮助开发者构建可维护、结构清晰的Web应用。Sitemesh则是一个页面布局和装饰框架,用于统一网站的外观和感觉,增强页面的...

    struts2-json-plugin-2.3.8.jar

    Struts2 JSON Plugin是针对Apache Struts2框架的一个重要组件,版本为2.3.8。这个插件主要的功能是让Struts2应用程序能够轻松地处理JSON(JavaScript Object Notation)数据格式,使得Web应用可以方便地进行JSON序列...

    struts2-core-2.0.11源码

    Struts2是一个非常著名的Java Web开发框架,它基于MVC(Model-View-Controller)设计模式,极大地简化了Java Web应用程序的开发。Struts2核心包`struts2-core-2.0.11`包含了框架的核心组件和功能,使得开发者能够...

    struts2-convention-plugin-2.3.15.1.jar

    struts2-convention-plugin-2.3.15.1.jar

    struts2-jfreechart-plugin-2.1.8.1.jar

    struts2-jfreechart-plugin-2.1.8.1.jar

    struts-json-plugin-2.1.8.jar struts2-junit-plugin-2.1.8.jar json-lib-2.1.jar

    Struts2是一个非常流行的Java Web开发框架,它提供了一种模型-视图-控制器(MVC)架构,便于开发者构建动态、数据驱动的Web应用程序。然而,在开发过程中,经常会出现库文件版本不兼容的问题,这可能导致程序运行...

    struts2-spring-plugin-2.3.24.1.jar

    最新struts2-spring-plugin-2.3.24.1.jar

    struts2-core-2.1.6.jar

    struts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jar...

    struts2-jquery-plugin使用手册,自己写的

    Struts2-jQuery-Plugin是基于Struts2框架的一个扩展插件,它为开发者提供了丰富的jQuery UI组件,使得在Struts2应用中实现交互式的用户界面变得更加便捷。这个使用手册将详细阐述如何集成并利用该插件提升Web应用的...

    struts2-dojo-plugin-2.1.8.jar

    struts2-dojo 跨域时解决拒绝访问的问题

    struts2-core-2.2.1-sources.jar

    struts2-core-2.2.1-sources.jar 源码,学strut2源码时能用到的

    struts2-jfreechart-plugin-2.0.11.jar

    struts2-jfreechart-plugin-2.0.11.jarstruts2-jfreechart-plugin-2.0.11.jarstruts2-jfreechart-plugin-2.0.11.jar

    struts2-core-2.3.15.1.jar

    struts2-core-2.3.15.1.jar

    struts2-spring-plugin-2.2.1.jar

    struts2-spring-plugin-2.2.1.jarstruts2-spring-plugin-2.2.1.jarstruts2-spring-plugin-2.2.1.jar

    struts2-jquery-plug ShowCase

    Struts2是一个强大的Java web应用程序框架,它提供了一种组织MVC(模型-视图-控制器)架构的方式,使得开发者可以更容易地构建可维护、可扩展的Web应用。jQuery则是一个广泛使用的JavaScript库,简化了DOM操作、事件...

    struts2 相关jar包 包含json-lib-2.1.jar+struts2-json-plugin-2.1.8.1.jar

    Struts2是一个非常著名的Java Web框架,用于构建和维护可扩展且易于管理的企业级应用程序。在Web开发领域,Struts2以其灵活性、强大的MVC(Model-View-Controller)架构和丰富的插件库而备受赞誉。这个压缩包包含了...

Global site tag (gtag.js) - Google Analytics