zoukankan      html  css  js  c++  java
  • struts2中css,js等资源无效 非路径问题(新手问题)

    一个小小的Strust2例子

    然后发现css,js,图片用不了,debugger下发现无法访问这些资源(404错误),妈的,那个例子明明可以的,起码从书上的图片看。

    发现是web.xml中的过滤器的问题,代码是这样的:

    web.xml

    复制代码
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
             version="3.1">
        <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>/*</url-pattern>
        </filter-mapping>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    </web-app>
    复制代码

    红色部分的代码过滤了所有的访问。这样不就是连css,js等资源的访问也过滤掉了吗?但是那个书上的例子是这样写的,大家都是这样写的。为毛!!。妈蛋。

    strust.xml文件只是配个一个action。

    滚上github看看完整的项目,找个好久,发现一个类似的项目应用了Strust2,也应用了css等资源文件。然后web.xml文件跟我的一模一样,但是注意到Strust.xml文件有一个特别之处。就是以下这一行:

    <constant name="struts.action.excludePattern" value="/static/.*?" /><!-- default locale -->

    static文件就是放置css,js,图片等资源的地方,代码旁边也注释到。

    妈蛋原来是这样。

    在Strust.xml中的<strust>标签下加上这一行代码就好了,(static换成根文件夹下放在资源文件的文件夹)

    现在位于这个文件架下的所有资源文件都可以访问了!

    不过记得引用路径最好是绝对路径。这个已经是老问题了。

  • 相关阅读:
    【Win10开发】相对布局——RelativePanel控件
    【Win10开发】关于AutoSuggestBox
    【Win10开发】自定义标题栏
    线上服务器CPU100%排查
    Rest接口单元测试
    hibernate validator参数校验&自定义校验注解
    JsonView视图
    跨域(SpringBoot)
    Mybatis的分支选择和In循环
    CentOS6.5使用yum安装mysql
  • 原文地址:https://www.cnblogs.com/mingf123/p/3765465.html
Copyright © 2011-2022 走看看