zoukankan      html  css  js  c++  java
  • Java 伪静态 Mapping

    1. 概念

      伪静态,简单来说是指转换url地址,在这里用来替换掉urlMapping。因为urlMapping需要为每一个页面都进行配置,非常麻烦。

    2. RequestMapping

    3. Spring 注解

    3.1. 概念

      注解后,可动态操作成员。

    3.2. 条件

      注解声明、使用注解的元素、操作使用注解元素的代码。

    3.3. 注解配置

    3.3.1. 打开spring-servlet.xml

    3.3.1. 处理urlMapping

      在spring-servlet.xml里面:

      注释或删除urlMapping。

    3.3.2. 添加扫描

    3.3.2.1.  添加

      在spring-servlet.xml里面,添加

      <context:component-scan base-package=“com.myweb”></context:component-scan>

    3.3.2.2.  报错

      Open quote is expected for attribute "base-package" associated with an element type "context:componet-scan"   

      Java 英语

    3.3.2.3.  分析

      问题也就是出在"base-package"上面,expected for ,就是说,上面给的无效的。仔细一看,引号有问题,是中文的。

    3.3.2.4.  解决

      “com.myweb”应该为英文的"com.myweb"

    3.3.2.5.  又报错

      The prifix "context" for element "context:component-scan" is not bound.

    3.3.2.6.  分析

      意思好像是 "context"没有引用进来。果然是。

    3.3.2.7.  解决
    <?xml version="1.0" encoding="UTF-8"?>
    
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans     
            http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
            http://www.springframework.org/schema/context 
            http://www.springframework.org/schema/context/spring-context-4.1.xsd">
       
        <context:component-scan base-package="com.myweb"></context:component-scan>
       
        <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/jsp/"></property>
            <property name="suffix" value=".jsp"></property>        
        </bean>
     
        <bean id="IndexAction" class="com.myweb.IndexAction">
        <property name="view">
            <value>index</value>
        </property> 
        </bean>   
      
    </beans>
    新的spring-servlet.xml

       指的是要扫描指定包下的文件,如有标记则表示该文件为控制器。

    3.3.3. 配置控制器标记

    3.3.3.1. 生成新的控制器文件

      在包com.myweb(控制器包)下面,生成新文件NewsAction.java。

      在jsp下面生成对应的News.jsp,并把index.jsp里面的内容拷进来稍微改动下。

    3.3.3.2. 注解控制器

    需要两步

    3.3.3.2.1. @Controller
    package com.myweb;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.servlet.ModelAndView;
    
    @Controller
    public class NewsAction {
    
    }

      只需要添加@Contoller,即告诉Spring,该类为控制器。控制器不用再实现Controller接口。

    3.3.3.2.2. @RequestMapping
        @RequestMapping("/newsshow")
        public ModelAndView ShowNews(){
    
            ModelAndView mv = new ModelAndView("news");
    
            return mv;
        }

    newsshow,代表网页访问符。

    news,代表news.jsp

    3.3.3.4. 使用控制器

      上面的例子对应这么输入:http://localhost:8080/newsshow.do

    4. 去掉url中的 .do等后缀

    4.1. 打开工程中的web.xml

    4.2. 修改servlet-mapping

      这里指定servlet。

        <servlet-mapping>
            <servlet-name>spring</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>

      把<url-pattern></url-pattern>中的.do 改为 /,表示从根目录开始,都用名为spring的servlet处理。

    4.2. 修改filter-mapping

      这是字符集处理。

      <filter-mapping>  
        <filter-name>encodingFilter</filter-name>  
        <url-pattern>/</url-pattern>  
      </filter-mapping> 

      同样处理,把<url-pattern></url-pattern>中的.do 改为 /

    5. 使用路径参数

        @RequestMapping("/news/{id}/")
        public ModelAndView ShowNewsCatalog(@PathVariable String id){
    
            ModelAndView mv = new ModelAndView("news");
    
            return mv;
        }

      注意,红颜色标准的参数名必须相同。

  • 相关阅读:
    php 建立类POST/GET 的HTTP请求
    上传文件
    golang精选100题带答案
    go面试
    golang反射
    go语言中type的几种使用
    写个版本迭代的方法 例如1.0.9 迭代为1.1.0 到10自动往前进1
    压缩文件和解压文件
    go语言中的文件创建,写入,读取,删除
    go面试题
  • 原文地址:https://www.cnblogs.com/SimonGao/p/4963022.html
Copyright © 2011-2022 走看看