首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Struts2 sj:head with scriptPath

Struts2 sj:head with scriptPath
EN

Stack Overflow用户
提问于 2015-03-06 01:51:45
回答 1查看 986关注 0票数 0

我有一个用Struts2制作的网络应用程序。我正在使用struts2-Jquery插件。

在jsp head部分中使用此设置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   <%@ taglib prefix="sj" uri="/struts-jquery-tags" %>
   <head>
   <sj:head/>
   </head>

一切正常,生成的HTML代码如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script src="/MyContextRoot/struts/js/base/jquery-1.10.0.min.js" type="text/javascript">

对于API:https://code.google.com/p/struts2-jquery/wiki/HeadTag,如果我更改sj:head到它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<sj:head scriptPath="/MyContextRoot/MySubDir/struts/"/>

然后生成的代码将如下所示(如预期的那样):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script src="/MyContextRoot/MySubDir/struts/js/base/jquery-1.10.0.min.js" type="text/javascript">

但是这个请求给了我一个来自服务器的404错误。

我可以创建目录,并放入所需的js文件,但我希望这些请求将由Struts提供。在第一种情况下起作用。

我的Struts2过滤器映射到: /*

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<filter-mapping>
 <filter-name>struts2</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping>

有什么想法吗?

谢了,兹森

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-06 05:28:50

我找到了解决办法。

我扩展了org.apache.struts2.dispatcher.DefaultStaticContentLoader类,并在struts.xml中添加了一个常量,将类用于静态内容加载。

首先创建你的装载机。您必须重写两个方法: canHandle和findStaticResource。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class MyStaticLoader extends DefaultStaticContentLoader{
 ...
 public boolean canHandle(String resourcePath) {
   return superCanHandle || resourcePath.contains("MySubDir/struts");
 }

 public void findStaticResource(String path, HttpServletRequest request, HttpServletResponse response) throws IOException {
     if(path != null && path.startsWith("/MySubDir/struts")){
        path = path.substring(9);
     }
     super.findStaticResource(path, request, response); 
 }
}

在struts.xml中,只需将该类添加为staticContentLoader即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<constant name="struts.staticContentLoader" value="hu.nebih.hfnyportal.util.HFNyPublicStaticLoader"/>

就这样。

对我来说已经足够了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28896208

复制
相关文章
linux head
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。
用户5760343
2022/05/23
1.1K0
Linux 命令 | head
head 命令是 Linux/Unix 操作系统下的一个常用命令,主要用于查看文本文件的头部内容,它可以显示文件的前N行内容。
小林C语言
2023/09/14
1980
Linux 命令 | head
Head First PageRank
PageRank算法是谷歌曾经独步天下的“倚天剑”,该算法由Larry Page和Sergey Brin在斯坦福大学读研时发明的,论文点击下载: The PageRank Citation Ranking: Bringing Order to the Web。
宅男潇涧
2018/08/01
1.2K0
Head First PageRank
Git HEAD detached from XXX (git HEAD 游离) 解决办法
通常我们在首次进行代码的拉取的时候容易出现HEAD游离状态, 也就是说当前操作不在任何一个现有分支上, 一般情况下我们在进行代码修改时需要先将对分支进行相应切换, 比如在master分支上进行开发, 那就git checkout master切换到master分支
乱码三千
2021/08/24
1.9K0
Git HEAD detached from XXX (git HEAD 游离) 解决办法
张拭心 shixinzhang
2018/01/05
4K0
Git HEAD detached from XXX (git HEAD 游离) 解决办法
Head First Android Toolbar
上一节我们介绍了ActionBar的使用,这一节我们介绍ActionBar 的替代者——Toolbar,看看它有多大的能耐!
宅男潇涧
2018/08/01
9020
Head First Android Toolbar
Linux之head命令
head 命令可用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容。如果提供了多个文件名,则每个文件中的数据都以其文件名开头。 命令格式 head [参数]... [文件]... 命令功能 head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。 命令参数 -q 隐藏文件名,在多个文件名的情况下有效 -v 显示文件名 -c N 从头显示N字节的内容 -n N 从头显示N行 显示文件的前10行 > head -n 10 1
入门笔记
2021/02/09
1.3K0
Linux内核10-list_head和hlist_head的理解
在Linux内核中,对于数据的管理,提供了2种类型的双向链表:一种是使用list_head结构体构成的环形双向链表;另一种是使用hlist_head和hlist_node2个结构体构成的具有表头的链型双向链表。
Tupelo
2022/08/10
2.6K0
Linux内核10-list_head和hlist_head的理解
LinuxShell命令head
head 命令用于在标准输出上显示每个文件起始 10 行。如果多于一个文件,则会逐个进行显示,并在每个文件显示的首部给出对应的文件名。如果没有指定文件或者指定为 -,则从标准输入上读取。
hotarugali
2022/02/28
6890
Linux 命令 | head
head 命令是 Linux/Unix 操作系统下的一个常用命令,主要用于查看文本文件的头部内容,它可以显示文件的前N行内容。
小林C语言
2023/09/14
3960
Head 和 Options 请求
head请求是http1.0约定的三种请求方式之一,与get请求相似,但是响应报文中没有响应体,只有响应头。
lonelydawn
2021/09/26
2.9K0
ES Head插件安装
地址:https://github.com/mobz/elasticsearch-head
郑小超.
2022/09/08
5920
ES Head插件安装
Head First Systrace
深入浅出systrace(1)systrace的简单介绍和systrace工具源码分析。
宅男潇涧
2018/08/01
2.8K0
Head First Systrace
Head First Python (一
建立一个数组: cast = ["Cleese","Palin","Jones","Idle"] 列出数组有多少数据项: print(len(cast)) 用列表“方法”在末尾增加一个数据项: cast.append("Gilliam") 用列表“方法”删掉末尾一个数据项: cast.pop() 用列表“方法”在末尾增加一个数据集合: cast.extend(["Gilliam","Chapman"]) 在列表中找到某个特定数值并删除它: cast.remove("Jones") 在列
py3study
2020/01/19
4520
Linux之head命令
原文链接:https://rumenz.com/rumenbiji/linux-head.html
入门笔记
2021/12/23
9080
Linux之head命令
原文链接:https://rumenz.com/rumenbiji/linux-head.html
入门笔记
2022/06/02
8580
struts2(一)之初识struts2
前言   我们都知道struts2是一个框架,那什么是框架呢?很多人其实不太明白,其实框架就是一个半成品,别人将一些功能已经写好了,我们只需要拿来用即可,像我们之前   使用的dbutils框架,操作数据,只需要两行代码,不用像一开始一样,老老实实的写一大堆代码,这就是开发框架的意义所在。简化开发(个人对框架认识的理解,其他   还有在框架上加自己的代码这些就不说了,肯定还有别的很多功能,这只是我最好理解的一种方式)。   框架的定义和作用: 把一些繁琐的重复性代码封装起来,使程序员在编码中把更多的经历放
用户1195962
2018/01/18
1.2K0
struts2(一)之初识struts2
16_HTTP Head
http://mpvideo.qpic.cn/0bf2qqaroaabayapilgixbpvdbgdc6cacfya.f10002.mp4?dis_k=91c0b9e47d12eff31c2549b
宿春磊Charles
2022/03/29
3450
ASP.NET AJAX(11)__ScriptManagerUpdatePanel的支持成员功能控制成员脚本控件支持成员ScriptMode和ScriptPathLoadScriptsBeforeU
ScriptManager的作用,这个不言而喻,它是整个的ASP.NET AJAX的核心 UpdatePanel的支持成员 static void RegisterArrayDeclaration static void RegisterClientScriptBlock static void RegisterScriptInclude static void RegisterClientScriptResource static void RegisterExpandoAttribute static
小白哥哥
2018/03/07
9300
点击加载更多

相似问题

sj: struts2访问会话var :head

12

停止sj:datepicker打开Struts2

13

在/>中实现<sj:选择Struts2

12

struts2 jquery选项卡和sj:div

16

如何在struts中编辑通过sj:head标记呈现的细节

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文