gpt4 book ai didi

java - 如何在不复制代码的情况下在 Java Web 应用程序中包含 jsp 页面?

转载 作者:行者123 更新时间:2023-12-03 17:58:20 24 4
gpt4 key购买 nike

首先让我说我是 Java 网络应用程序的新手,如果这是一个非常基本的问题,我很抱歉。

我正在编写一个能够让用户登录帐户的应用程序。每个页面的顶部包含一个信息栏(有点像 GMail 中的顶部栏),内容如下:

Logged in as <userid> | Settings | Help

由于该部分将出现在每个页面上,因此将其拆分出来对我来说很有意义,这样我就不会重复我的代码。

我做了一些搜索,发现我可以使用这个:

<jsp:include page="userInfoBar.jsp" flush="true" />

在另一个 JSP 中间。不过,我的 userSettings.jsp 页面遇到了问题,该页面还从数据库中获取了一些用户详细信息。我不仅在 2 个 JSP 之间复制了一些代码,而且我感觉我在呈现网页期间做了两倍的工作。

例如(伪代码):

userInfoBar.jsp:
user = getCurrentUser
if ( user ) {
print Logged in as user.userid | Settings | Help
}

userSettings.jsp:
<jsp:include page="userInfoBar.jsp" flush="true" />
user = getCurrentUser
Change settings for user.userid

所以在那个小例子中,getCurrentUser 被调用了两次(我认为,除非 Java 以某种方式对其进行优化)。

我如何才能避免这种重复工作,但仍然使 userInfoBar 与每个 JSP 保持一定程度的分离?

提前致谢!

布莱恩

最佳答案

问题是您的 JSP 中有 Java 代码。当你这样做时,大多数邪恶的事情都会发生。你应该在谷歌上查找 MVC 模式。

无论如何,这样做的好方法是使用 MVC 模式,并在 Controller 中完成繁重的工作,完成繁重的工作后,您可以传递字符串/列表来显示 View , View 会显示它们仅此而已。

此外,如果您开始将 MVC 与 JSTL 一起使用,将会有更多的人能够帮助您,因为每个人都知道如何做这些事情,希望没有多少人还在他们的 JSP 中使用内联 java

关于java - 如何在不复制代码的情况下在 Java Web 应用程序中包含 jsp 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/774038/

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