gpt4 book ai didi

java - 在 java 类中处理 JSP (Spring MVC)

转载 作者:行者123 更新时间:2023-12-01 12:07:04 25 4
gpt4 key购买 nike

我目前正在使用 Spring MVC 4 开发新的 Web 应用程序。

我有四个文件,名为:header.jsp、menu.jsp、default.jsp 和 footer.jsp,它们基本上是我的 web 应用程序的模板。

因此,我的 default.jsp 是应用程序中所有其他页面的默认模板,它基本上是这样的:

...
<jsp:include page="header.jsp" />
<jsp:include page="menu.jsp">
<body>
Contents goes here
</body>
<jsp:include page="footer.jsp">
...

Controller :

...
@RequestMapping("/")
public ModelAndView index() {
return new ModelAndView("default");
}
...

我想要完成的是创建一个可以处理 header.jsp 的 java 类,一个可以处理 menu.jsp 等的 java 类......因为它们将是动态页面并且它们的内容会改变。

我知道我可以在 JSP 中使用 java 代码,但那是我不想做的。我想做的示例:

public class menu {
//this class handles menu.jsp
public List menuItems() {
ArrayList menuItems = new ArrayList();
menuItems.add("Home");
menuItems.add("Contact");
return menuItems;
}
}

在 menu.jsp 中:

<%@ codebehind="menu.java" %>
<ul>
<li> ${item[0]} </li> <!-- would output 'Home' -->
<li> ${item[1]} </li> <!-- would output 'Contact' -->
</ul>

这可能吗?

最佳答案

是的,这是可能的,您只需在 ModelAndView 上添加型号即可。

"menuItem" - will be name of your model.
"menu.menuItems()" - is your modelObject.

Controller

@RequestMapping("/")
public ModelAndView index() {
Menu menu = new Menu();
return new ModelAndView("default", "menuItems", menu.menuItems());
}

菜单

public class Menu {
//this class handles menu.jsp
public List menuItems() {
ArrayList menuItems = new ArrayList();
menuItems.add("Home");
menuItems.add("Contact");
return menuItems;
}
}

不要使用 scriptlet,而是使用 jstl .

<%@ codebehind="menu.java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<ul>
<c:forEach var="menu" value="${menuItem}">
<li><c:out value="${menu}"/></li>
</c:forEach>
</ul>

此外,我建议您使用Apache Tilesspring以获得更好的模板框架。

关于java - 在 java 类中处理 JSP (Spring MVC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27517278/

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