java - Webfont 提供在表单帖子上下载

标签 java css jsp spring-security webfonts

如果有一个使用 WebFont 的 Spring 登录表单。当我第一次提交登录表单时,浏览器会提供 .ttf 版本的网络字体供下载。如果我随后中止下载并再次单击提交按钮,则登录有效并且我被重定向。此错误在每次登录时在 IE 8 和 9 上重现(不足为奇),并且仅在清除缓存后在 FF 10 上重现。这只发生在方法设置为 post 时。 Get 工作正常,但这显然不是登录表单的解决方案...

任何关于可能是什么原因的想法都会有所帮助。

代码非常简单:

这是 CSS 文件:

@charset "utf-8";

/* first for IE 6/7/8 */
@font-face {
  font-family: KievitWebProBook;
  src: url(/fonts/KievitWebPro-Book.eot);
  src: url(/fonts/KievitWebPro-Book.eot?) format('eot'),
       url(/fonts/KievitWebPro-Book.woff) format('woff'),
       url(/fonts/KievitOffcPro-Book.ttf) format('truetype');
}

body { font-family: KievitWebProBook, sans-serif; }
div.logo { margin-left: auto; margin-right: 150px; margin-top: 100px; text-align: right; }
div.header { width: 90%; margin: 0px auto 20px auto; color: #788995; font-size: 24px; padding-left: 300px;}
div.divider { width: 90%; margin-left: auto; margin-right: auto; height: 5px; background-image: url(/images/gradient5px.png); background-repeat: repeat-x;}
table { margin-top: 40px; margin-left: 300px; width: 330px; background-color: #eaedef; padding: 10px;}
td.header { text-align: center; font-size: large; padding: 5px; }
td.error { color: #0076ae; font-size: small; }
td.errorcode { color: #98a5ae; font-size: small; text-align: right; font-size: 12px;}
td.input input { width: 100%; color: #a6b1b9; font-size: 12px; }
td.submit { text-align: left; width: 50% }
td.subtext { text-align: right; color: #0076ae; font-size: x-small; width: 50%; }
td.subtext a { color: #0076ae; }

这是 JSP:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"
%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"
%><%@ taglib prefix="spring" uri="http://www.springframework.org/tags"
%><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title><spring:message code="login.title"/></title>
    <link rel="stylesheet" type="text/css" href="<c:url value='/css/login.css'/>" />
    <script type="text/javascript">
    <!--
    function clearInput(inp) {
        if (inp.value === inp.defaultValue) {
            inp.value = "";
        }
    }

    function restoreInput(inp) {
        if (inp.value === "") {
            inp.value = inp.defaultValue;
        }
    }
    -->
    </script>
</head>
<body>
    <div class="logo"><img src="<c:url value="/images/logo.png"/>" alt="Logo" /></div>
    <div class="header"><spring:message code="login.title"/></div>
    <div class="divider"></div>
    <form action="j_spring_security_check" method="post">
    <table>
        <tr>
            <td class="input" colspan="2"><input name="j_username" type="text" onfocus="clearInput(this);" onblur="restoreInput(this);" value="<spring:message code="login.username"/>" /></td>
        </tr>
        <tr>
            <td class="input" colspan="2"><input name="j_password" type="password" onfocus="clearInput(this);" value="<spring:message code="login.password"/>"/></td>
        </tr>
        <tr>
            <td class="submit"><input type="submit" value="<spring:message code="login.loginbutton"/>"/></td>
            <td class="subtext"><a href="newpass.jsp"><spring:message code="login.newpass"/></a></td>
        </tr>
        <c:if test="${not empty param.login_error}">
        <tr>
            <td class="error" colspan="2"><spring:message code="login.error"/></td>
        </tr>
        <tr>
            <td class="errorcode" colspan="2">Code: <c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}"/></td>
        </tr>
        </c:if>
    </table>
    </form>
</body>
</html>

最佳答案

试试这个。它可能会工作 -

@font-face {
    font-family: 'PTSansNarrowRegular';
    src: url('PTN57F-webfont.eot');
    src: url('PTN57F-webfont.eot?#iefix') format('embedded-opentype'),
         url('PTN57F-webfont.woff') format('woff'),
         url('PTN57F-webfont.ttf') format('truetype'),
         url('PTN57F-webfont.svg#PTSansNarrowRegular') format('svg');
    font-weight: normal;
    font-style: normal;
  }

这是从 FontSquirrel 的 CSS 中提取的用于嵌入字体的内容。
希望这会有所帮助。

关于java - Webfont 提供在表单帖子上下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9733565/

相关文章:

java - 如何使用 Olingo (Odata) 进行 HTTP 认证服务调用

javascript - 使用 css 缩放转换和平移滚动条 - 定位问题

java - JSP 中的枚举描述

java - 如何将类 ="active"设置为 Activity 页面

java - 使用 Jacob 集成 Tomcat 和 Microsoft Outlook

java - jvisualvm 作为服务运行时不列出 Jboss 5.1.0GA

java - 当我使用 @JsType 时,GWT 2.8 出现经典开发模式错误 | @JsMethod 示例

html - <object> 响应宽度

html - 如何在 IE 9 中设置选择下拉列表的高度

spring - 如何将值从 JSP 传递到图 block 属性?