Logon.jsp
<!DOCTYPE html>
<html ng-app="angularspring">
<head>
</head>
<body ng-controller="LogonController">
<form>
<div>
TextBox : <input type="text" ng-model="person.userName" />
</div>
<div>
Password : <input type="password" ng-model="person.passWord" />
</div>
<div ng-view></div>
<button type="submit" ng-click="login(person)"> Submit
</button>
</form>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="js/jquery.i18n.properties-min-1.0.9.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.js"></script>
<script type="text/javascript" src="js/init.js"></script>
<script type="text/javascript" src="js/controller.js"></script>
<script type="text/javascript" src="js/i18n.js"></script>
<script type="text/javascript" src="js/base64.js"></script>
<script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script>
</body>
</html>controller.js
var as = angular.module('angularspring',[]);
as.controller('LogonController', function ($scope, $http) {
var actionUrl = 'action/checkUserNameAndPassword/';
$scope.login = function (person) {
$http.post(actionUrl,$scope.person);
};
}); web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/action-servlet.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Spring MVC -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>/action/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>logon.html</welcome-file>
</welcome-file-list> 在action-servlet.xml文件中包含以下标记和类
action-servlet.xml
<mvc:annotation-driven/>
<context:annotation-config />
<context:component-scan base-package="com.pack" />
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
<property name="prefix" value="" />
<property name="suffix" value=".html" />
</bean>LogonController.java
在LogonController中,我可以获得绑定到person对象的请求值,但不能将请求呈现给logonSuccess.html
@RequestMapping(value = "/checkUserNameAndPassword", method = RequestMethod.POST)
@ResponseBody
public ModelAndView logon(@RequestBody Person person) {
return new ModelAndView("WEB-INF/views/logonSuccess");
}发布于 2013-04-02 06:05:02
根据我的理解,您可以绑定模型属性,但不能将其分派到所需的视图。
这是我观察到的
在logon方法上有@ResponseBody注释,但它返回一个ModelandView对象。
如果您想返回到html视图,那么删除@ResponseBody注释。
您可以阅读有关此here的更多信息
另外,在action-servlet.xml中,使用html文件的位置指定viewResolver的prefix属性,我认为它是WEB-INF/views
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/views/</value>
</property>
<property name="suffix">
<value>.html</value>
</property>
</bean>现在您可以像这样返回ModelandView
return new ModelAndView("logonSuccess");发布于 2013-05-27 03:16:04
我也面临着同样的问题。从登录页面,我尝试在成功登录时重定向到主页。我使用的是angular js和spring mvc rest控制器。我正在从angularjs执行http.post,而我的rest控件正在进行身份验证并返回模型和视图对象。但是,angularjs没有将我重定向到主页。
然后我改变了我的angularjs实现,它起作用了。尝试从angularjs而不是http.post或http.get向控制器提交表单。现在,页面被重定向到主页或错误页面,无论在REST控制器的ModelAndView对象中设置什么视图。
https://stackoverflow.com/questions/15742467
复制相似问题