-3
String destinationFile = request.getParameter("destinationFile ");
if (destinationFile == null || "".equals(destinationFile))
 response.sendRedirect("/astro/login/index.jsp?destinationFile =customerLogin.jsp");

我把它写成

String destinationFile = request.getParameter("destinationFile ");
response.sendRedirect((destinationFile==null || "".equals(destinationFile)) ? "/astro/login/index.jsp?destinationFile =customerLogin.jsp" : destinationFile);

三元运算符的问题是应该放在后面:

在if条件下,我没有提到任何其他内容。我必须验证目录结构是否应该预先添加到destinationFile。

4

3 回答 3

1

你根本无法做到这一点。

三元运算符产生一个表达式,例如可以用作函数参数。

也就是说,如果你有一个else分支也可以发送一些东西,你可以使用三元运算符。

所以

if (a) {
    response.sendRedirect(b);
} else {
    response.sendRedirect(c);
}

可以改写为

response.sendRedirect(a ? b : c);

但是,如果您的else分支完全不做其他事情(或者根本不做任何事情,就像您的情况一样),那么您就会被普通if条款所困扰。

于 2013-05-16T09:42:42.280 回答
0

你不能那样做......三元运算符暗示了一个 IF-ELSE 条件,而你只有 IF 部分。

例如,假设您有以下代码:

String destinationFile = request.getParameter("destinationFile ");
if (!String.IsNullOrEmpty(destinationFile))
    response.sendRedirect(destinationFile);
else
    response.sendRedirect("/astro/login/index.jsp?destinationFile=customerLogin.jsp");

那么您可以将其更改为:

String destinationFile = request.getParameter("destinationFile ");
response.sendRedirect(!String.IsNullOrEmpty(destinationFile) ? destinationFile : "/astro/login/index.jsp?destinationFile=customerLogin.jsp"));
于 2013-05-16T09:50:29.693 回答
0

使用三元运算符--->

var reult =
    (request.getParameter("destinationFile").ToString() != String.Empty || request.getParameter("destinationFile") != null) ? response.sendRedirect("/astro/login/index.jsp?destinationFile =customerLogin.jsp") :
    null;
于 2013-05-16T09:45:11.640 回答