尝试在JSP

时间:2016-10-08 07:34:48

标签: jsp servlets java-ee scriplets

我正在尝试在jsp中打印一个变量(从java servlet转发) 为此,我使用以下

<jsp:scriptlet>
    jrservlet.Client user = (jrservlet.Client)request.getAttribute("user");
    out.println(user.toString());
</jsp:scriptlet>

这段代码实际上工作正常,到目前为止一切顺利。

当我尝试格式化输出时出现问题;像这样

<jsp:scriptlet>
    jrservlet.Client user = (jrservlet.Client)request.getAttribute("user");
    out.println("<h1>" + user.toString() + "</h1>");
 </jsp:scriptlet>

错误读取

  

&#34;字符串文字未通过双引号正确关闭&#34;

并且第一个双引号加下划线。

我觉得奇怪,因为根据我在<jsp:scriptlet>内的理解我应该能够输入java代码。对我来说,html标签"<h1>"应该作为String处理。

为什么我&#34;在我看来是xml&#34; 错误?
我错过了什么,有人可以指出它吗?

要绕过此问题,请尝试将html标记放在外部,如下例所示。

</h1>
    <jsp:scriptlet>
        jrservlet.Client user = (jrservlet.Client)request.getAttribute("user");
        out.println(user.toString());
     </jsp:scriptlet>
<h1>

在浏览器(Google Chrome 53和Firefox 45)中,源代码似乎没问题,但字体根本不会改变;它看起来与<h1>标签应该产生的内容无关。

<?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 charset="utf-8"/>
        <meta content="width=device-width, initial-scale=1.0" name="viewport"/>
        <title>Home</title>
        <link href="/TP1MiniProjetBanque/styles/login/css/style.css" type="text/css" rel="stylesheet"/>
        <meta content="width=device-width, initial-scale=1.0" name="viewport"/>
    </head>
    <body>
        <header> some header <header/>
        <h1>6 J. Remy jremy@kepler-42.milkyway kepler Kepler-42</h1>
    </body>
    </html>

编辑:开始
我尝试直接在String中添加HTML标记(从Servlet中),然后将整个内容转发到JSP,然后打印它。

request.setAttribute("userName", "<h1>" + user.getSurname() + " " + user.getName() + "</h1>");  

这消除了JSP中的上述错误,但在浏览器中,字体仍然没有改变。

这些是奇怪的行为;我一无所知。
修改:结束

我正在使用java 8和tomcat 7。

0 个答案:

没有答案