Jsp 为什么可以';我在scriptlet表达式中使用if-else语句,而三元运算符工作正常
我们知道脚本变量state是真的 为什么这个scriptlet表达式是错误的?翻译后,如何将代码转换成_jspService方法Jsp 为什么可以';我在scriptlet表达式中使用if-else语句,而三元运算符工作正常,jsp,scriptlet,Jsp,Scriptlet,我们知道脚本变量state是真的 为什么这个scriptlet表达式是错误的?翻译后,如何将代码转换成_jspService方法 <%= if(state) { "yes"; } else { "no"; } %> if/else版本在语法上与三元运算符不同。它不会“返回”任何东西 为了做这样的工作,你需要这样做 <% if (state) { out.print("yes"); } else { out.print("
<%=
if(state) {
"yes";
} else {
"no";
}
%>
if/else
版本在语法上与三元运算符不同。它不会“返回”任何东西
为了做这样的工作,你需要这样做
<%
if (state) {
out.print("yes");
} else {
out.print("no");
}
%>
如果语句需要做些什么。它们不能只使用字符串作为唯一的语句。三值运算符选择并返回所选值
具有
语法的Scriptlet块必须是一个生成输出值的表达式。基本上,他们必须评估一些东西。即使if
语句在语法上有效,它仍然不会返回值。Roel de Nijs说:
JSP表达式放在out.print()中
所以转换成out.println(state?
“是”:“否”);,编译起来没有任何问题。但是有
if语句生成的代码将无法编译。这也是为什么
jsp表达式中不允许使用分号
我知道这是对的,但问题是。为什么表达式是错误的,因为我们可以在它们内部使用if/else?第一个表达式不会转换为
\u jspService
方法中的任何内容,因为它不是有效的语法。它不能编译。
public void _jspService(...){
out.println("yes");
}
<%
if (state) {
out.print("yes");
} else {
out.print("no");
}
%>