gpt4 book ai didi

Java、Spring、Apache Tiles 错误 : Could not resolve view with name 'contact' in servlet with name 'spring'

转载 作者:行者123 更新时间:2023-11-30 06:34:25 26 4
gpt4 key购买 nike

Controller :

@Controller
@SessionAttributes
public class ContactController {

@RequestMapping(value = "/addContact", method = RequestMethod.POST)
public String addContact(@ModelAttribute("contact")
Contact contact, BindingResult result) {

System.out.println("First Name:" + contact.getFirstName() +
"Last Name:" + contact.getLastName());

return "redirect:contacts.html";
}

@RequestMapping("/contact")
public ModelAndView showContacts() {

return new ModelAndView("contact", "command", new Contact());
}
}

这是我的 tiles.xml:

<tiles-definitions>
<definition name="base.definition"
template="/WEB-INF/jsp/layout.jsp">
<put-attribute name="title" value="" />
<put-attribute name="header" value="/WEB-INF/jsp/header.jsp" />
<put-attribute name="menu" value="/WEB-INF/jsp/menu.jsp" />
<put-attribute name="body" value="" />
<put-attribute name="footer" value="/WEB-INF/jsp/footer.jsp" />
</definition>

<definition name="contact" extends="base.definition">
<put-attribute name="title" value="Contact Manager" />
<put-attribute name="body" value="/WEB-INF/jsp/contact.jsp" />
</definition>

错误是这样的:

org.apache.jasper.JasperException: javax.servlet.ServletException: Could not resolve view with name 'contact' in servlet with name 'spring'
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:584)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:456)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

欢迎索取更多源代码

最佳答案

在你的last question你表明你使用了一个带有前缀和后缀的 UrlBasedView 解析器。

删除该前缀和后缀。

应该是:

<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver"
id="tilesViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.tiles2.TilesView" />
</bean>
<bean class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"
id="tilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/layouts/layouts.xml</value>
<!-- Scan views directory for Tiles configurations -->
<value>/WEB-INF/views/**/views.xml</value>
</list>
</property>
</bean>

顺便说一句:此配置允许 tiles 配置文件的两个 tzps(只有 sermatic 不同)

  • /WEB-INF/layouts/layouts.xml 包含所有(我们称之为)“基本定义”
  • /WEB-INF/views/**/views.xml 包含扩展“基本定义”(例如“联系人”定义)的具体定义 -- 您可以为每个文件夹有一个单独的 view.xml - 如果您将 View 分组,这很有用,例如每个实体的所有 View (创建、更新、显示和列表),在一个单独的文件夹中

如果您不需要此功能,只需删除该行即可。

关于Java、Spring、Apache Tiles 错误 : Could not resolve view with name 'contact' in servlet with name 'spring' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7013043/

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