ssm框架搭建(三)-controller層-springMVC

mvc層,控制視圖層。主要負責與頁面的交互。
最後的文件結構圖
ssm
首先是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
源碼下載地址:源碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章