2017-11-18 138 views
0

我有一個從表單填寫並提交時我希望請求是http://localhost:8080/restroo/admin/adminLog但它給http://localhost:808/adminLog並獲得404錯誤。我不知道爲什麼我會遇到這個問題,實際上我在春天使用兩個控制器時遇到了問題。網址在春天更改

的web.xml

<servlet> 
<servlet-name>spring</servlet-name> 
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet- 
class> 
<load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
<servlet-name>spring</servlet-name> 
<url-pattern>/</url-pattern> 
</servlet-mapping> 
</web-app> 

我已經爲spring-servlet.xml

admin.jsp

<form method="post" action="/adminLog" modelAttribute="adminUser"> 
    First Name: <input type = "text" name = "userName"> 
    <br /> 
    password <input type = "password" name = "password" /> 
    <input type = "submit" value = "Submit" /> 
    </form> 

AdminPageController.java

@Controller 
@RequestMapping("/admin/*") 
public class AdminPageController { 
@Autowired 
AdminUser adminUser; 
@Autowired 
MenuItems menuItems; 
@Autowired 
MenuItemsDao menuItemsDao; 
@Autowired 
AdminLoginDao adminLoginDao; 
@RequestMapping(value="", method=RequestMethod.GET) 
public ModelAndView addMenuItems(@ModelAttribute MenuItems menuItems){ 
//  if(menuItems != null){ 
//   menuItemsDao.addItems(menuItems); 
//  } 
    return new ModelAndView("admin"); 

} 
@RequestMapping(value="/adminLog", method=RequestMethod.POST) 
public ModelAndView adminLogin(@ModelAttribute("adminUser") AdminUser ad){ 
    List<AdminUser> adminUser = adminLoginDao.adminLogin(); 
    int len = adminUser.size(); 
    for(int i=1;i<=len;i++){ 
     String userN = adminUser.get(i).getUserName(); 
     String pass = adminUser.get(i).getPassword(); 
     if(userN.equals(ad.getUserName()) && (pass.equals(ad.getPassword()))){ 
       return new ModelAndView("adminLogin");  

      } 
    } 
       return new ModelAndView("admin"); 

} 


} 

回答

0

你必須改變的servlet通過添加一個pr來映射EFIX整個應用程序的API:

<servlet-mapping> 
    <servlet-name>spring</servlet-name> 
    <url-pattern>/restroo</url-pattern> 
</servlet-mapping> 
+0

非常感謝您的回答。我嘗試了你建議的方式,但也沒有爲我工作 當我改變了形式的動作,然後URL變爲'http:// localhost:8080/restroo/admin/admin/adminLogin',並給出錯誤號找到處理程序 –

+0

如果您嘗試不加改變地離開表單,該怎麼辦? –

+0

我得到了問題解決,但我怎麼不知道 –

0

您正在使用內部資源視圖解析器,這是無法獲取視圖不是在WEB-INF Floader。

找到這個http://www.baeldung.com/spring-mvc-view-resolver-tutorial

+0

非常感謝你的回答。但我的每個視圖都在Web-Inf文件夾中,並且從您的鏈接中嘗試使用其他視圖解析器,但它也沒有幫助 –