gpt4 book ai didi

javascript - 替换 scriptlet 以避免 .jsp 文件内出现 java 代码

转载 作者:行者123 更新时间:2023-12-02 09:52:59 25 4
gpt4 key购买 nike

我将相同的 Java scriptlet 复制并粘贴到多个 .jsp 文件中。我想用更易于维护且可读性更好的解决方案替换它

    <%
if (!MediaUtil.validateAuthorization()) {
out.println("Unauthorized");
} else {
String srcquery = request.getQueryString();
if (srcquery == null) {
srcquery = "";
}
User currentUser = UserService.findCurrentUser();

if (currentUser == null) {
out.println(User.MESSAGE_NO_USER);
} else {
%>

<html>
<head>

编辑:我在 FrenchFigaro 之后使用 JSTL 重写了代码的回答。感兴趣的人的最终代码如下:

<c:choose>
<c:when test="${!MediaUtil.validateOrganization()}">
<c:out value="Unauthorized"/>
</c:when>
<c:otherwise>
<c:set var="srcquery" value="<%=request.getQueryString()%>"/>
<c:choose>
<c:when test="${srcquery == null}">
<c:set var="srcquery" value=""/>
</c:when>
</c:choose>
<c:set var="currentUser" value="<%=UserService.findCurrentUser()%>"/>
<c:choose>
<c:when test="${currentUser == null}">
<c:out value="<%=User.MESSAGE_NO_USER%>"/>
</c:when>
<c:otherwise>
<html>

(...)

</html>
</c:otherwise>
</c:choose>
</c:otherwise>
</c:choose>


最佳答案

要替换 if/else 部分,您可以使用 <c:if><c:choose>

第一个提供了单一选择,没有其他选择(但具有相反条件的两个标签就可以达到目的)。

更好用<c:choose>在你的情况下。

<c:choose>
<c:when test="${condition}">...</c:when>
<c:otherwise>...</c:otherwise>
</c:choose>

至于其余的,您将需要使用 bean 在 servlet 和 JSP 之间传输数据

关于javascript - 替换 scriptlet 以避免 .jsp 文件内出现 java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56187122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com