cari

Rumah  >  Soal Jawab  >  teks badan

java - springmvc不能扫描到Controller,报404?

applicationContext.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:util="http://www.springframework.org/schema/util"  
        xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:mvc="http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
            http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd
            http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
            http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd" >
    <!-- 定义支持注解的HanlderMapping -->
        <mvc:annotation-driven/>
        <!-- 开启组件扫描,启用IOC注解配置 -->
        <context:component-scan 
            base-package="com.caibai"/>
            
        <util:properties id="dbParams" 
            location="classpath:db.properties">
        </util:properties>
        
        <bean id="viewResolver" 
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/">
            </property>
            <property name="suffix" value=".jsp">
            </property>
        </bean>
        
    </beans>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 
 <servlet>
     <servlet-name>springmvc</servlet-name>
     <servlet-class>
 org.springframework.web.servlet.DispatcherServlet
     </servlet-class>
     <init-param>
         <param-name>contextConfigLocation</param-name>
         <param-value>classpath:applicationContext.xml</param-value>
     </init-param>
     <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
     <url-pattern>*.form</url-pattern>
 </servlet-mapping>
 
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

LoginController.java

package com.caibai.controller;

import javax.annotation.Resource;
//import javax.ejb.Remove;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.caibai.search.User;
import com.caibai.search.UserService;

@Controller
public class LoginController {
    @Resource
    private UserService service;
    
    
    @RequestMapping("/tologin.form")
    public String toLogin(){
        return "login";
    }
    @RequestMapping("/login.form")
    public String login(
        String username,String number,Model model){
        User user = service.checkLogin(username,number);
        if(!"".equals(user.getCard())){
            model.addAttribute("name", user.getName());    
            model.addAttribute("card", user.getCard());    
            model.addAttribute("number", user.getNumber());    
            model.addAttribute("score", user.getScore());    
            return "ok";
        }else {
            model.addAttribute("msg", "会员信息错误!");
            return "login";
        }

    }
}

代码如上,页面访问login.jsp静态页面是可以的,但是填写上登陆数据不能跳转,直接访问login.form也是报404错误,请各位大神看下是什么原因?

阿神阿神2890 hari yang lalu233

membalas semua(9)saya akan balas

  • 怪我咯

    怪我咯2017-04-17 17:47:41

    Cari intinya

    Saya membaca semula penerangan anda dan anda berkata 你可以直接访问.jsp页面! ! !
    Kemudian jsp anda hendaklah diletakkan terus di bawah laluan akar ! Kemudian anda tidak seharusnya mengkonfigurasi parameter prefix atau value="/"

    Dan sebab paparan diletakkan di bawah WEB-INF hanyalah untuk menghalang pengguna daripada mengaksesnya secara langsung tanpa melalui pengawal Ini akan menyebabkan data Model pada halaman tidak wujud , jadi Saya menasihati anda untuk meletakkannya di sana juga.
    ————————————————————————————————

    Nampaknya tiada masalah dengan konfigurasi saya cadangkan anda menetapkan titik putus dalam kaedah .form.

    Kini nampaknya Pemetaan telah berjaya, tetapi Paparan yang dikembalikan tidak ditemui .
    Sila sahkan sama ada /WEB-INF/ok.jsp dan /WEB-INF/login.jsp wujud.

    Selain itu, pandangan yang biasa saya lihat tidak dilemparkan terus di bawah /WEB-INF/, tetapi semuanya berada di bawah direktori /WEB-INF/views atau /WEB-INF/jsps.
    Lihat jika anda telah meletakkannya seperti ini, maka anda tersalah menulis fail konfigurasi.

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

    balas
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:47:41

    404 biasanya mempunyai dua sebab Satu ialah RequestMapping ditulis dengan salah atau tidak ditemui, tetapi konfigurasi anda sepatutnya betul kerana templat anda tidak wujud. Adakah html atau ok.jsp ok.html wujud
    Selain itu, akan ada gesaan pada halaman 404 yang merupakan sebabnya

    balas
    0
  • ringa_lee

    ringa_lee2017-04-17 17:47:41

    @ControllerTiada @RequestMapping("/XXX") di bawah

    balas
    0
  • PHP中文网

    PHP中文网2017-04-17 17:47:41

    <context:component-scan base-package="cn.com.xxx.xxx">
        <context:include-filter type="annotation" expression="org.aspectj.lang.annotation.Aspect"/>
    </context:component-scan>

    balas
    0
  • 高洛峰

    高洛峰2017-04-17 17:47:41

    @ruixie lebih betul.
    PS: Untuk menambah, anda boleh meletakkan titik putus dalam kaedah yang akan dipanggil oleh pengawal untuk melihat sama ada permintaan memasuki kaedah yang perlu dipanggil.

    • Jika ia tidak masuk, ia biasanya ralat dalam pemetaan konfigurasi.

    • Jika anda memasukkan kaedah, ia membuktikan bahawa "log masuk" yang dikembalikan belum dihuraikan oleh penghurai pandangan.

    balas
    0
  • 怪我咯

    怪我咯2017-04-17 17:47:41

    Jika dilihat dari fail konfigurasi, tiada masalah, kerana ralat 404 dilaporkan, menunjukkan bahawa URL tidak dapat ditemui, saya rasa anda sepatutnya boleh memasuki lapisan Pengawal masalah mesti digabungkan dengan keseluruhan anda Berdasarkan projek, anda boleh mencubanya dahulu dan kemudian menyemak masalah berdasarkan jawapan [Fallen Angel 008]

    balas
    0
  • PHPz

    PHPz2017-04-17 17:47:41

    Sepatutnya direktori jsp salah, fail jsp tidak ditemui

    balas
    0
  • PHP中文网

    PHP中文网2017-04-17 17:47:41

    Anda boleh mengujinya dengan JUnit dahulu

    balas
    0
  • 黄舟

    黄舟2017-04-17 17:47:41

    404 Tidak Ditemui: Sumber yang diminta tidak ditemui (sumber yang diminta tidak ditemui)

    LoginController Gunakan sahaja @Controller tanpa menggunakan @ResponseBody atau @RestController bersama-sama, menunjukkan penggunaan Lihat perubahan hala permintaan. Sama ada "/tologin.form" dan "/login.form" berjaya dipetakan dan dipantau boleh dilihat daripada log permulaan aplikasi, yang serupa dengan log berikut:

    2016-04-12 23:29:35.157 INFO 2398 --- [main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/]}" onto public java.lang.String hello.HelloController.index()
    

    Pemetaan Servlet springmvc yang anda konfigurasikan hanya mendengar *.form dan tidak akan mendengar permintaan yang diubah hala oleh *.jsp Permintaan ini akan jatuh pada default Servlet yang dikonfigurasikan dalam Tomcat conf/web.xml. jspDi manakah fail diletakkan?
    Cuba ubah suainya seperti ini:

     <servlet-mapping>
         <servlet-name>springmvc</servlet-name>
         <url-pattern>/</url-pattern>
     </servlet-mapping>
    

    balas
    0
  • Batalbalas