2017-11-18 121 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文件夹中,并且从您的链接中尝试使用其他视图解析器,但它也没有帮助 –