mvc層,控制視圖層。主要負責與頁面的交互。
最後的文件結構圖
首先是Controller層:UserController.java
package com.ssm.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.ssm.entity.User;
import com.ssm.service.UserService;
/**
* @author zx
* @Date 2017年10月11日 上午9:25:39
* @Class UserController.java
*/
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/userName", method = RequestMethod.GET)
public String list(Model model) {
return "userName";
}
@RequestMapping(value = "/{userId}/query", method = RequestMethod.GET, produces = {
"application/json;charset=utf-8" })
@ResponseBody
public User queryUser(@PathVariable("userId") int userId) {
User user = userService.queryUserByUserId(userId);
return user;
}
}
springMVC默認只配置對jsp的視圖解析配置,這裏是一個html解析器,並繼承 InternalResourceView 後重寫 checkResource,這是我在網上找的,原文在http://blog.csdn.net/cai_chinasoft/article/details/51611596,有興趣可以去看看。HtmlResourceView.java
package com.ssm.utils;
import java.io.File;
import java.util.Locale;
import org.springframework.web.servlet.view.InternalResourceView;
/**
* @author zx
* @Date 2017年10月11日 上午10:57:33
* @Class
* 重寫 解析器
*/
public class HtmlResourceView extends InternalResourceView{
@Override
public boolean checkResource(Locale locale) throws Exception {
// TODO Auto-generated method stub
String url = this.getServletContext().getRealPath("/") + getUrl();
File file = new File(url);
return file.exists();// 判斷該頁面是否存在
}
}
spring配置:spring-mvc.xml(這裏我只配置了html的,jsp的網上找找或者剛纔那個網址裏面有)
<?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:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!--配置spring mvc -->
<!--1,開啓springmvc註解模式 a.自動註冊DefaultAnnotationHandlerMapping,AnnotationMethodHandlerAdapter
b.默認提供一系列的功能:數據綁定,數字和日期的format@NumberFormat,@DateTimeFormat c:xml,json的默認讀寫支持 -->
<mvc:annotation-driven />
<!--2.靜態資源默認servlet配置 -->
<!-- 1).加入對靜態資源處理:js,gif,png 2).允許使用 "/" 做整體映射 -->
<mvc:default-servlet-handler />
<!--3:配置html 顯示ViewResolver-->
<bean id="htmlviewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="com.ssm.utils.HtmlResourceView" />
<property name="order" value="0" />
<property name="prefix" value="/" />
<property name="suffix" value=".html" />
<property name="contentType" value="text/html;charset=UTF-8"></property>
</bean>
<!--4:掃描web相關的controller -->
<context:component-scan base-package="com.ssm.controller" />
</beans>
最後就是界面:userName.html(使用了bootstrap,jquery)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link href="https://cdn.bootcss.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="row clearfix">
<div class="col-md-12 column">
<div class="form-group">
<label>userId</label><input type="text" class="form-control" id="userId" />
</div>
<div class="checkbox">
</div> <button type="button" class="btn btn-primary" onclick="submit()">Submit</button>
</div>
</div>
</div>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/popper.js/1.12.5/umd/popper.js"></script>
<script type="text/javascript" src="https://cdn.bootcss.com/bootstrap/4.0.0-beta/js/bootstrap.min.js"></script>
<script type="text/javascript">
function submit(){
var userId = $("#userId").val();
if(userId == ''){
alert("userId不能爲空")
}else{
$.get("./"+userId+"/query",function(result){
alert("用戶名爲:"+result.userName);
})
}
}
</script>
</body>
</html>
我訪問的url爲:http://localhost:8080/SSM_TEST/user/userName
源碼下載地址:源碼