【问题标题】:Capture the value of JSP Expression Language variable into a java variable将 JSP 表达式语言变量的值捕获到 java 变量中
【发布时间】:2014-03-30 02:10:03
【问题描述】:

是否可以将 JSP 表达式语言变量的值捕获到 jsp 页面中的 java 变量中?

例如:我有一个变量 ${error.type} 我想将 ${error.type} 的值捕获到一个 java 变量中,这样说:String errortype = ${error.type}(我知道这是不可能的) 反正有这样做吗? 实际上我想检查${error.type} 是否为空,如果有任何可用的值,我将显示成功消息,否则显示错误消息。 谢谢我是java和JSP的新手:)


更新: 我试过这段代码

 <c:choose>
     <c:when test="${not empty error.type}"> 
        test error message    
     </c:when>     
     <c:when test="${empty error.type}">
         test success message     
     </c:when> 
 </c:choose> 

但是现在无论是否为空,两个文本都会同时显示! 即使我尝试了${errors.errors ? "some text when true" : "some text when false"} 并猜猜是什么,每次我在浏览器中打印“错误时的某些文本”时,尽管该值已正确初始化。知道为什么吗?

【问题讨论】:

    标签: java jsp el


    【解决方案1】:

    实际上我想检查 ${error.type} 是否为空,如果有任何可用的值,我将显示成功消息,否则显示错误消息

    您正在寻找${empty error.type} 以了解error.getType() 是否为null

    <c:choose>
        <c:when test="${not empty error.type}">
            ${error.message}
        </c:when>
        <c:when test="${empty error.type}">
            <!-- show your valid message -->
        </c:when>
    </c:choose>
    

    【讨论】:

    • 嗨,谢谢。我试过你的代码。但它不起作用。这是我使用的:&lt;c:choose&gt; &lt;c:when test="${not empty error.type}"&gt; test error message &lt;/c:when&gt; &lt;c:when test="${empty error.type}"&gt; test success message &lt;/c:when&gt; &lt;/c:choose&gt; 但我得到了两个文本输出!知道为什么吗?
    • &lt;c:choose&gt; 之前添加${empty error.type} &lt;br /&gt; 以检查它是否为空。顺便说一句,您会得到一个非常奇怪的结果。
    • 是的,对于空的和非空的退货,我得到了真假。仍然在两种情况下同时打印文本!
    • 编辑你的问题并添加四个破折号----,然后添加你当前的代码并解释你的新问题,不要删除之前的内容。
    • 嗨,我想通了。我没有在 jsp 页面的开头添加 java.sun.com/jsp/jstl/core" prefix="c" %> 。我不知道我们需要初始化它:) 现在它工作正常!谢谢@luiggi mendoza
    【解决方案2】:

    我想通了。我没有在 jsp 页面的开头添加&lt;%@taglib uri="java.sun.com/jsp/jstl/core"; prefix="c" %&gt;。我不知道我们需要初始化它:) 无论如何现在它工作正常!谢谢

    【讨论】:

      猜你喜欢
      • 2015-08-12
      • 2014-02-12
      • 2011-09-24
      • 2016-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多