假设一个文本框在 jsp 中从 Transfer Object 中获取值,如下所示:
<INPUT TYPE="text" NAME="test" ID="test" value="<%=testTO.getTest()%>">
但是,如果 getTest 返回 null,则会显示 null。
如何使用 ?: 使用 scriptlet,如果值为 null,则显示空白,否则从 TO 返回的值。
testTO.getTest() == null ? "" : testTO.getTest()
试试这个,它肯定会奏效。
如果您使用的是 WebLogic Server,则有一个设置(请参阅使用 WebLogic JSP 编译器)
-noPrintNulls
Shows "null" in jsp expressions as "".
这可以防止null
在这种情况下。您的容器可能具有类似的功能。优点:无需更改代码。我认为这也可以在 weblogic.xml 中设置。
在 JSP 中隐藏空空格:-
我不确定它是否会对您有所帮助,但在我的情况下效果很好。
我正在使用 web-logic 10.3,我想在其中隐藏空值的 jsp 是我的 web 应用程序的一部分。
脚步:
在包资源管理器中找到 Weblogic.xml。
打开这个 Weblogic.xml。
单击 Weblogic.xml 的 JSP 选项卡。
在输出选项(右上)下的 JSP 选项卡上,取消选中“打印空值”复选框。
构建和部署应用程序,文本框中将不再显示 Null。
像这样使用它来打印空白:
<INPUT TYPE="text" NAME="test" ID="test" value="<%= ((testTO.getTest()==null)?"":testTO.getTest()) %>">
好的添加这个条件
(&& testTO.getTest().length() == 0)
如果它已经返回一个字符串,如果不是,你必须使用它
(&& testTO.getTest().toString().length() == 0)
<INPUT TYPE="text" NAME="test" ID="test" value="<%= ((testTO.getTest()==null && testTO.getTest().length() == 0)?"":testTO.getTest()) %>">
if(testTO.getTest()!=null) {
out.print("<input type=\"text\" name=\"test\" id=\"test\" value=\""+testTO.getTest()+"\">");}
else
{
out.print("<input type=\"text\" name=\"test\" id=\"test\" value=\"\">");
}
使用EL
或JSTL
表达。表达式语言是空安全的。