gpt4 book ai didi

java - 警告页面未找到 :No mapping found for HTTP request with URI

转载 作者:太空宇宙 更新时间:2023-11-04 11:56:00 24 4
gpt4 key购买 nike

我正在尝试构建一个示例 mvc 项目,但我遇到了这个问题。当我调用 /products url 时,样式工作正常,但是当我尝试调用 /products/viewProducts/{productId} url 时,不会为此调用添加样式。这是调用第二个网址时捕获的图像 Image2

请帮我找出我到底做错了什么?以下是项目详情。

错误详细信息

WARN  PageNotFound:1147 - No mapping found for HTTP request with URI [/course-project/productsList/viewProduct/resources/js/bootstrap.min.js] in DispatcherServlet with name 'dispatcher'

Project Structure

调度程序-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<display-name>course-project</display-name>

<!-- Bootstraps the root web application context before servlet initialization -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- needed for ContextLoaderListener -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/dispatcher-servlet.xml
/WEB-INF/applicationContext.xml
</param-value>
</context-param>

<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<!-- Map all requests to the DispatcherServlet for handling -->
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>


</web-app>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:src="http://www.springframework.org/schema/mvc"
xmlns:cache="http://www.springframework.org/schema/cache"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/cache http://www.springframework.org/schema/mvc/cache.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">

<context:component-scan base-package="com.pavan.mvc"/>
<mvc:annotation-driven/>

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>

</bean>

<mvc:resources mapping="/resources/**" location="/WEB-INF/resources/"/>
<tx:annotation-driven/>
</beans>

HomeController.java

package com.pavan.mvc.controller;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import com.pavan.mvc.dao.ProductDao;
import com.pavan.mvc.model.Product;

@Controller
public class HomeController {

@Autowired
private ProductDao productDao;

@RequestMapping("/")
public String goHome(){
return "home";
}
@RequestMapping("/productsList")
public String getProducts(Model model){
List<Product> products = productDao.getAllProduct();
model.addAttribute("products", products);
return "productsList" ;
}


@RequestMapping("/form")
public String getForm(){
return "form" ;
}

@RequestMapping("/productsList/viewProduct/{productId}")
public String viewProduct(@PathVariable Long productId, Model model) throws IOException{
Product product = productDao.getProductById(productId);
model.addAttribute(product);
return "viewProducts";
}

}

产品列表.jsp

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@include file="/WEB-INF/views/template/header.jsp"%>
<div class="container-wrapperr">
<div class="container">
<div class="page-header">
<h1>All Product</h1>
<p class="lead">Chechout all the awesome products available now</p>
</div>

<table class="table table-striped table-hover">
<thead>
<tr class="bg-sucess">
<th>Phto Thumb</th>
<th>Product Name</th>
<th>Category</th>
<th>Condition</th>
<th>Price</th>
<th></th>
</tr>
</thead>
<c:forEach items="${products }" var="product">
<tr>
<td><img src="#" alt="image" /></td>
<td>${product.productName}</td>
<td>${product.productCategory }</td>
<td>${product.productCondition }</td>
<td>${product.productPrice }</td>
<td><a
href="<spring:url value="/productsList/viewProduct/${product.productId}"/>">
<span class="glyphicon glyphicon-info-sign"></span>
</a></td>
</tr>
</c:forEach>
</table>
</div>
</div>
<%@include file="/WEB-INF/views/template/footer.jsp"%>

viewProducts.jsp

<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@include file="/WEB-INF/views/template/header.jsp"%>

<div class="container-wrapperr">
<div class="container">
<div class="page-header">
<h1>Product Detail</h1>
<p class="lead">Here is the detail information of the product</p>
</div>
<div class="container">
<div class="row">
<div class="col-md-5">
<img src="#" alt="image" style = "width: 100% ; height: 100px"/>
</div>
<div class="col-md-5">
<h3>${product.productName}</h3>
<p>
<strong>Catogary</strong>: ${product.productCategory}
</p>
<p>
<strong>Condition</strong>: ${product.productCondition}
</p>
<p>
<strong>Product Price</strong>: ${product.productPrice}
</p>
</div>
</div>
</div>
</div>
</div>

<%@include file="/WEB-INF/views/template/footer.jsp"%>

最佳答案

在您的 JSP 中,您在哪里包含引导文件?您的项目中有引导文件吗?如果没有,则将它们添加到 JSP 的顶部:

<link rel="stylesheet"
href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script
src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

这些将在您的 JSP 中包含 bootstrap lib(和 jquery lib),然后它将显示您的样式

@Pavan 如果您真的不想在每个 jsp 中编写包含内容的内容,那么您必须在部署描述符(您的 web.xml 文件)中配置 JSP,如下所示:

<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.jspf</url-pattern>
<include-prelude>/WEB-INF/jsp/base.jspf</include-prelude>
<trim-directive-whitespaces>true</trim-directive-whitespaces>
</jsp-property-group>
</jsp-config>

现在,如果你看到了,我将这一行放在上面的配置中 <include-prelude>/WEB-INF/jsp/base.jspf</include-prelude>部署描述符中的标签告诉容器在属于的每个 JSP 的开头包含/WEB-INF/jsp/base.jspf 文件这个地产集团。这对于定义公共(public)变量、标签库声明或其他应该向组中的所有 JSP 提供可用的资源。同样,一个标签定义要包含在组中每个 JSP 末尾的文件。您可以更多地使用这两个标签多于单个 JSP 组中的一次。例如,您可以创建 header.jspf 和 footer.jspf 文件分别包含在每个 JSP 的开头和结尾。

现在,base.jspf 包含什么内容?这:

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@include file="/WEB-INF/views/template/header.jsp"%>
<%@include file="/WEB-INF/views/template/footer.jsp"%>
<link rel="stylesheet"
href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"> </script>
<script
src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"> </script>

但我不知道 JSP 是否会选择您添加的引导行。但尝试一下。如果它们不起作用,那么就假设我从未回答过这个问题。对不起。哦,确保这个base.jspf位于/WEB-INF/jsp/然后所有 JSP 文件也都在该路径下。

警告:如果您这样做,则必须稍微移动您的 jsp 才能使其正常工作。

我希望这对您有所帮助,并且希望我没有让您进一步困惑或让您的工作更加困难!

关于java - 警告页面未找到 :No mapping found for HTTP request with URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41391509/

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