相关疑难解决方法(0)

对html <base>标签有什么建议?

我以前从未见过 实际使用过的<base>HTML标签.它的使用存在缺陷,这意味着我应该避免它吗?

事实上我从来没有注意到它在现代生产网站(或任何网站)上的使用让我对它持怀疑态度,尽管看起来它可能有用于简化我网站链接的有用应用程序.


编辑

使用基本标签几周后,我最终找到了使用基本标签的一些主要问题,这使得它比最初出现时更不可取.从本质上讲,变化href='#topic'href=''基本标签下是非常有它们的默认行为不兼容,并可以从默认行为,这种变化很容易使第三方库的控制范围之外的非常不可靠的 以意想不到的方式,因为它们在逻辑上依赖于默认行为.通常,这些更改是微妙的,并且在处理大型代码库时会导致不那么明显的问题.我已经创建了一个回答,详细说明了我在下面遇到的问题.因此,在您进行广泛部署之前,请自行测试链接结果<base>,这是我的新建议!

html base-tag contextpath

454
推荐指数
8
解决办法
15万
查看次数

在调用转发到JSP的Servlet时,浏览器无法访问/查找CSS,图像和链接等相关资源

当我将servlet转发到JSP时,我在加载CSS和图像以及创建指向其他页面的链接方面遇到了麻烦.具体而言,当我把我的<welcome-file>index.jsp的CSS被加载并正在显示我的图片.但是,如果我将我设置<welcome-file>HomeServlet哪个转发控制index.jsp,则不应用CSS并且不显示我的图像.

我的CSS文件在web/styles/default.css.
我的照片在web/images/.

我像这样链接到我的CSS:

<link href="styles/default.css" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)

我正在显示我的图像如下:

<img src="images/image1.png" alt="Image1" />
Run Code Online (Sandbox Code Playgroud)

这个问题是怎么造成的,怎么解决?


更新1:我添加了应用程序的结构,以及其他一些可能有用的信息.

替代文字

header.jsp文件是包含CSS链接标记的文件.该HomeServlet设置为我welcome-fileweb.xml:

<welcome-file-list>
    <welcome-file>HomeServlet</welcome-file>
</welcome-file-list>
Run Code Online (Sandbox Code Playgroud)

servlet被声明并映射为web.xml:

<servlet>
    <servlet-name>HomeServlet</servlet-name>
    <servlet-class>com.brianblog.frontend.HomeServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>HomeServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

更新2:我最终发现了问题 - 我的servlet映射不正确.显然当设置一个Servlet时,<welcome-file>它不能有一个URL模式/,我觉得有点奇怪,因为它不代表网站的根目录?

新映射如下:

<servlet-mapping>
    <servlet-name>HomeServlet</servlet-name>
    <url-pattern>/HomeServlet</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

css jsp servlets image

77
推荐指数
2
解决办法
10万
查看次数

JSP/Servlet的隐藏功能

我对编写JSP/Servlet时使用的技巧感兴趣.我将开始:

我最近发现了如何在另一个标记的属性中包含一个JSP标记的输出:

<c:forEach items="${items}">
  <jsp:attribute name="var">
    <mytag:doesSomething/>
  </jsp:attribute>
  <jsp:body>
    <%-- when using jsp:attribute the body must be in this tag --%>
  </jsp:body>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

jsp servlets

76
推荐指数
1
解决办法
1万
查看次数

获取URL到webapp上下文(基本URL)

有时您需要在servlet/JSP /基于内容的任何内容中构建Web应用程序上下文的完整URL HttpServletRequest.像http://server.name:8080/context/这样的东西.Servlet API没有一种方法可以实现这一点.

直接的方法是将所有URL组件附加到a StringBuffer,例如

ctxUrl = sb.append(req.getScheme()).append("://")
.append(req.getgetServerName()).append(":")
.append(req.getServerPort()) etc
Run Code Online (Sandbox Code Playgroud)

我想知道这个替代方案是否有任何问题(速度提高了10倍):

ctxUrl = req.getRequestURL();
ctxUrl = ctxUrl.substring(0, ctxUrl.lastIndexOf("/")));
Run Code Online (Sandbox Code Playgroud)

以上两种方法总会产生相同的结果吗?

java servlets web-applications java-ee

19
推荐指数
2
解决办法
4万
查看次数

如何从JSP中的/ main/resources链接Web资源文件?

我的java webapp中有以下结构

-- main
   -- java
   -- resources
      -- lib
         -- css
            -- style.css
   -- webapp
      -- WEB-INF
         -- web.xml
      --index.jsp
Run Code Online (Sandbox Code Playgroud)

如何将style.css链接到我的索引jsp?

<link rel="stylesheet" href="???">
Run Code Online (Sandbox Code Playgroud)

这应该是什么?

提前致谢

resources jsp maven

6
推荐指数
1
解决办法
5180
查看次数

HTML5 &lt;base&gt; 带有根相对 url 的标签

请帮助我理解<base>标签的 href 属性的功能。

我有一个网站托管在http://goodsite.org/bob. 其他网站托管在http://goodsite.org/others.

我打算将我的应用程序移至http://bettersite.org/bob.

为了支持这一点,我的标题中有一个基本网址。 <base href="/bob/">.

我的链接看起来像这样: <a href="thatonething.img">That one thing</a>

正如所希望的那样,我看到了预期的链接(例如"http://goodsite.org/bob/thatonething.img"

题:

<base>标签是否普遍支持根相对网址(即href="/bob/")?

这似乎在我的测试中有效,但我在阅读规范时遇到了一些麻烦。更一般地说,我想知道我是否滥用了这个标签。

html base-tag

4
推荐指数
1
解决办法
3119
查看次数

检索包含文件jsp中文件的相对url路径

我有一个名为Main.jsp的文件,位于"http://Mywebpage.com/Open/This/Folder/Main.jsp"的绝对URL路径.

在Main.jsp里面,有一个jsp包括:

<%@ include file="../../Top.jsp" %>
Run Code Online (Sandbox Code Playgroud)

现在,在Top.jsp页面中,我有其他jsp和javascript语句引用文件:

<%@ taglib uri="emonogram.tld" prefix="em" %>
...
<script type="text/javascript" src="HL.js"></script>
Run Code Online (Sandbox Code Playgroud)

emonogram.tld和HL.js存储在与Top.jsp相同的目录中,即"http://Mywebpage.com/Open/".

我需要Top.jsp足够灵活,这样任何文件都可以引用它,无论它在目录树中的哪个位置.这里的问题是我收到错误,因为无法找到Top.jsp中引用的文件.为什么?jsp包含路径将是Main.jsp的相对路径.所以,Top.jsp会失败,因为当我打电话给emonogram.tld时,我想要"http://Mywebpage.com/Open/emonogram.tld",但它实际上是"http://Mywebpage.com/Open" /This/Folder/emonogram.tld".

我尝试查看一些jsp选项,如getRequestURL,getServletPath,getRealPath和getContextPath,但这些方法似乎没有返回我想要的内容.

我当前的逻辑是检索Top.jsp的相对路径,并将其分别添加到emonogram.tld和HL.js.但我不知道该怎么做; 我想弄明白这一点.


更新:根据BalusC的答案,我安装了标签和Tomcat 5.5.我按照链接和web.xml包含相应的信息.我甚至更新到JSP 1.2,没有.如果${}它只相当于在<% %>标签内部进行,那么它不是一个成败的情况,在我得到原始问题后我可以担心它.但是谢谢你.

我按照这个链接尝试了所有以"get ..."开头的方法,但似乎都没有.

getContextPath()/Open即使Main.jsp位于/ Open/This/Folder /中,我也可以同时使用Top.jsp和Main.jsp."emonogram.tld"遗憾的是,这个问题正在影响加载,这是一个标记库,而不仅仅是javascript文件.

再次感谢你.

Update2:道歉,拼写错误; 我的意思是JSTL 1.2,而不是JSP 1.2.我在Tomcat 5.5.28,JSP 2.0和JSTL 1.2.

顺便说一句,谢谢你的帮助和知识.虽然不鼓励使用scriptlet,但它是相同的,这是好的.有了getcontextPath(),我期待/Open/This/Folder/Main.jsp和/Open/Top.jsp,但它会返回/Open/两个文件,这很奇怪.我会继续调查,希望能够解决问题,再次感谢你.

url jsp path relative-path include

3
推荐指数
1
解决办法
2万
查看次数

JSF:/ webapp子目录中的网页超链接

我有一个.xhtml页面列表,我保存在/ src/main/webapp/pages /文件夹中.现在我想创建它们的超链接.目前唯一有效的是默认主页:/src/main/webapp/pages/default.xhtml.

  <!-- Welcome page -->
  <welcome-file-list>
    <welcome-file>/pages/default.xhtml</welcome-file>
  </welcome-file-list>

  <!-- JSF mapping -->
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <!-- Map these files with JSF -->
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
  </servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

对于其他人,如果我有一个链接,如:

<a href="/pages/page1.xhtml">Page 1</a>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

在ExternalContext中找不到/page1.xhtml作为资源

我的问题是:如何在相对于webapp根目录的href中指定我想要的页面.

directory jsf web-applications hyperlink

2
推荐指数
1
解决办法
3392
查看次数

在JSF 2.0中重新加载时未应用的模板和样式

我刚刚开始使用JSF 2.0并面临一个热烈欢迎的问题.我使用了模板和模板客户端,并将模板文件应用于CSS(应该提到我不是css专家)样式.当我运行应用程序时,一切都很好但是当页面被提交或重新加载或导航到另一个页面时,按下页面上的任何链接或按钮都不会应用样式,只显示纯HTML.我该如何克服这个问题?

模板文件:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html">

    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <link href="resources/css/default.css" rel="stylesheet" type="text/css" />
        <link href="resources/css/cssLayout.css" rel="stylesheet" type="text/css" />
        <title>
            <ui:insert name="title">Facelets Template</ui:insert>
        </title>
    </h:head>

    <h:body>
        <div id="top" class="top">
            <ui:insert name="top">Top</ui:insert>
        </div>
        <div id="left">
            <ui:insert name="left">left</ui:insert>
        </div>
        <div id="content" class="left_content">
            <ui:insert name="content">Content</ui:insert>

        </div>

    </h:body>

</html>
Run Code Online (Sandbox Code Playgroud)

客户端模板:

    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html">

    <body>
        <ui:composition template="./../templates/TutorialsStructure.xhtml">
            <ui:define name="title">
                Start
            </ui:define>

            <ui:define name="top">
                <h:graphicImage value="Image/butterfly.gif" style="alignment-adjust: central"/>
            </ui:define>

            <ui:define name="left">
            </ui:define>

            <ui:define name="content">
                <h:form>
                    <div>
                        <p>
                            <div>
                                <h:outputLabel id="outputlabel_userName" …
Run Code Online (Sandbox Code Playgroud)

css java jsf templates jsf-2

1
推荐指数
1
解决办法
2670
查看次数