java - JSP请求中的属性变为0

标签 java jsp servlets request tomcat6

我试图通过 Java HttpServlet 将两个属性发送到 JSP。问题是它们在我的 JSP 文件中都显示为 0(数字)。

这是我的 RegisterDeveloper.java 文件中的 doGet 方法:

public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // Fill up default attributes for the template
        req.setAttribute("validation-error", false);
        req.setAttribute("validation-error-message", "");

        // Redirect to register page
        req.getRequestDispatcher("/register.jsp").forward(req, resp);
}

非常简单,当我单步执行时,属性被添加到请求中,浏览器被重定向到/register.jsp 页面。

这是 register.jsp 页面的问题部分:

<c:if test="${validation-error}">
    <div id="validationError">
        <span id="errorText">
            ${validation-error-message}
        </span>
    </div>
</c:if>

由于某种原因,我添加到请求中的属性都变成了'0'。

浏览器中显示的错误是:

HTTP Status 500 - javax.el.ELException: Cannot convert 0 of type class java.lang.Long to class java.lang.Boolean

我的 web.xml 是相关的:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">

    <display-name>RServer</display-name>
    <welcome-file-list>
        <welcome-file>homepage.html</welcome-file>
    </welcome-file-list>

    <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>RegisterDeveloper</servlet-name>
        <servlet-class>com.steven.RegisterDeveloper</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>RegisterDeveloper</servlet-name>
        <url-pattern>/register</url-pattern>
    </servlet-mapping>

</web-app>

我正在使用 Tomcat6。这一切看起来都非常简单,而且我在其他页面上使用了非常相似的代码,所以我真的很难看到我错过了什么!

任何帮助,非常感谢。

我的/WEB-INF/lib/文件夹中有 javax.servlet.jsp.jSTL-1.2.1.jar 和 javax.servlet.jsp.jSTL-api-1.2.1.jar..

最佳答案

来自specification I googled

An identifier is constrained to be a Java identifier - e.g., no -, no /, etc.

validation-error不是Java标识符,而是validation的减法运算 和错误。由于您尚未定义它们,因此它们是 null 并且这适用:

1.7.1 Binary operators - A {+,-,*} B ■ If A and B are null, return (Long)0

所以我猜测试变成了 if( (Long)0 == true )

尝试使用 req.setAttribute("validationError", false); ${validationError}

关于java - JSP请求中的属性变为0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14728826/

相关文章:

java - 当表单操作使用 Apache Shiro 转到 jsp 页面时,onClick 不起作用

java - 过滤器就像 servlet。 servlet容器有很多,过滤器只在servlet容器中起作用吗?

java - Mongodb java 驱动程序性能低下

java - 我无法导入或使用 Android 版 AdView

java - 如何判断 JVM 是否支持 "-server"参数?

java - @SessionScoped bean 有并发问题吗?

java - 导出到 Excel 以获取绝对路径

java - 我的 jsp 中的标签库错误

mysql - 将动态复选框值传递到下一个 JSP 页面

java - jsp 中从 struts1 到 struts2 的一些语法更改 --> 逻辑 :messagesPresent