SpringMVC配置(一)

今天学习了SpringMVC如何配置 并且配置成功 暂时测试了以下功能:通过视图解析器访问了JSP界面,以及HTML界面。

(访问不同类型的页面需要配置不同的视图解析器,一开始我并不知道这种情况所以在*-servlet.xml的配置访问JSP视图解析器中的后缀suffix-value中写了.html 导致了报错(No mapping found for HTTP request with URI [/SpringMVCTest/WEB-INF/pages/helloworld.html] in DispatcherServlet with name 'mymvc'

)在网上找了很多解决方案,(大多数都是说包名没写对,或者是Web.xml没有配置正确的)照做后都没成功,最后把,html改成JSP就成功解决了问题。我就想为什么只能是JSP界面,于是度娘搜索得到了上面的结论)


附上一张SpringMVC原理图

好的言归正传。下面记录一下SpringMVC配置,(非meaven)

1.所需JAR包(我使用的是实现基本功能所需要的最少JAR包,如果有其他需求请自行下载)

其中freemarker-xx.jar是配置HTML视图所需Jar包。

2.配置web.xml

<servlet>
		<servlet-name>mymvc</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/*-servlet.xml</param-value>
        </init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	
	<servlet-mapping>
		<servlet-name>mymvc</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

3.配置*-servlet.xml *是自己写的XML的名字。(我的xml全称是mymvc-servlet.xml)

3.1首先是配置你写的处理器(代码)的包的位置

 <!-- ①:对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 -->
   <context:component-scan base-package="com.cn.dwq.control"/>
   <context:annotation-config/>

3.2然后配置JSP视图解析器

 <bean id="viewResolver"
       class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        
       <property name="prefix">
           <value>/WEB-INF/pages/</value>
       </property>
        
       <property name="suffix">
           <value>.jsp</value>
       </property>       
        
   </bean> 

(prefix代表的是在你项目的目录下WebContent文件夹下路径的前缀,suffix则是你页面的后缀,例如我的项目名是SpringMVCTest

访问WebContent下面的网页的URL是localhost:8080/SpringMVCTest/prefix/xx.suffix  | localhost:8080/SpringMVCTest/WEB-INF/pages/xx.jsp)

而实际上 如果在spring-mvc.xml中DispatcherServlet拦截”/”,为了实现REST风格,拦截了所有的请求,那么同时对.html,.js,*.jpg等静态文件的访问也就被拦截了。直接URL访问HTML/jsp是不成功的会被拦截下来。

3.2配置Html视图解析器

   <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">  
        <property name="templateLoaderPath">  
            <value>/WEB-INF/pages/</value>  
        </property>  
    </bean>  
     <bean id="htmlviewResolver"  
        class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">  
        <property name="suffix" value=".html" /> 
        <property name="order" value="0"></property> 
        <property name="contentType" value="text/html;charset=UTF-8"></property>         
    </bean>  

配置该视图解析器需要freemarker-xx.jar 如果报错需要改变JAR包版本。

配置完之后便可以在处理器(代码)中访问HTML页面了。


4.包的结构以及处理器(代码) 

4.1项目的结构图。

4.2LoginControl.java代码

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class LoginControl {

		 
	    @RequestMapping("/hello")
	    public String hello(Model model) {
	         
	       // model.addAttribute("greeting", "Hello Spring MVC");
	         
	        return"helloworld";
	         
	    }
	    
	    @RequestMapping("/hello1")
	    public String hello1(Model model) {
	         
	       // model.addAttribute("greeting", "Hello Spring MVC");
	         
	        return"helloworld1";
	         
	    }
	 
	}

5.测试

5.1打开tomcat Add项目

5.2.输入url发送请求

5.2.1首选是访问JSP页面:http://localhost:8080/SpringMVCTest/hello

结果:

 5.2.2访问HTML界面:http://localhost:8080/SpringMVCTest/hello1

结果

好 。今天就记录到这里





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值