未从HTML表单提交调用Spring控制器

未从HTML表单提交调用Spring控制器,spring,Spring,我试图在HTML表单的提交操作上调用一个简单的spring控制器。 但是spring控制器没有被调用。我搜索了allot,但不明白遗漏的地方。谁能帮我一下吗 下面是我的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-in

我试图在HTML表单的提交操作上调用一个简单的spring控制器。 但是spring控制器没有被调用。我搜索了allot,但不明白遗漏的地方。谁能帮我一下吗

下面是我的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">

<welcome-file-list>
<welcome-file>index.jsf</welcome-file>
</welcome-file-list>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
</web-app>
我的控制器名称是:

package com.src.main.process;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.src.main.LoginBean;
import com.src.main.UserLogin;
@Controller
public class HandleApplicationInitProcessor {

private UserLogin userLogin;
private LoginBean loginBean;
public HandleApplicationInitProcessor() {
}

@RequestMapping(value = "/processLogin", method = RequestMethod.POST)
public String process(){

this.getUserLogin().setUserName(this.getLoginBean().getUserName());
this.getUserLogin().setPassword(this.getLoginBean().getPassword());
System.err.println("UserName : "+this.getUserLogin().getUserName());
System.err.println("Password : "+this.getUserLogin().getPassword());


return "Hello World !";
}
public UserLogin getUserLogin() {
return userLogin;
}
public void setUserLogin(UserLogin userLogin) {
this.userLogin = userLogin;
}
public LoginBean getLoginBean() {
return loginBean;
}

public void setLoginBean(LoginBean loginBean) {
this.loginBean = loginBean;
}
}
最初我尝试使用JSF表单提交标签,但由于这个问题,我尝试使用简单的HTML表单提交,但仍然存在相同的问题。
我的控制台上也没有任何错误。

我认为您应该对代码进行以下更改

1.在web.xml文件中声明DispatcherServlet,如下所示。例如:-

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

      <servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
            <url-pattern>*.htm</url-pattern>
      </servlet-mapping>

4.在使用JSF和SpringWebMVC代码时,删除
。您还没有在web.xml中声明DispatcherServlet。请阅读SpringWebMVC入门教程。我不想使用它。这就是我添加requestcontextListener的原因。如果我使用此标记并进行上述更改,则会调用我的控制器。但是我在我的bean中得到了空值,我还尝试将作用域从请求更改为会话,并且仍然得到了空值。您的控制器现在调用了吗?更改控制器中的方法,如下所示,传递一个参数@RequestBody UserLogin UserLogin,其中包含您从JSP页面发送的值。我正在获取HTTP状态415-描述如下:服务器拒绝了此请求,因为请求实体的格式不受请求方法()的请求资源支持。您是否更改了控制器类的方法?
package com.src.main;
public class UserLogin {

private String userName;
private String password;

public UserLogin(){

}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}


}
package com.src.main.process;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.src.main.LoginBean;
import com.src.main.UserLogin;
@Controller
public class HandleApplicationInitProcessor {

private UserLogin userLogin;
private LoginBean loginBean;
public HandleApplicationInitProcessor() {
}

@RequestMapping(value = "/processLogin", method = RequestMethod.POST)
public String process(){

this.getUserLogin().setUserName(this.getLoginBean().getUserName());
this.getUserLogin().setPassword(this.getLoginBean().getPassword());
System.err.println("UserName : "+this.getUserLogin().getUserName());
System.err.println("Password : "+this.getUserLogin().getPassword());


return "Hello World !";
}
public UserLogin getUserLogin() {
return userLogin;
}
public void setUserLogin(UserLogin userLogin) {
this.userLogin = userLogin;
}
public LoginBean getLoginBean() {
return loginBean;
}

public void setLoginBean(LoginBean loginBean) {
this.loginBean = loginBean;
}
}
     <servlet>
        <servlet-name>mvc-dispatcher</servlet-name>
            <servlet-class>
                      org.springframework.web.servlet.DispatcherServlet
            </servlet-class>
            <load-on-startup>1</load-on-startup>
      </servlet>

      <servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
            <url-pattern>*.htm</url-pattern>
      </servlet-mapping>
<bean id="handleApplicationInitProcessor" class="com.src.main.process.HandleApplicationInitProcessor">
   <property name="userLogin" ref="userLogin"></property>
   <property name="loginBean" ref="loginBean"></property>
</bean>
@Autowired
private UserLogin userLogin;
@Autowired
private LoginBean loginBean;