论坛首页 Java企业应用论坛

bboss mvc基础配置介绍

浏览 2395 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-08-03   最后修改:2011-08-03
bboss mvc基础配置介绍,本文重点介绍bboss-mvc.xml文件中的一些有意义的配置以及其什么时候被加载。

1.bboss-mvc.xml加载
首先介绍bboss-mvc.xml文件什么时候会被加载,先谈一下web.xml中bboss mvc的请求处理servlet的配置:
<servlet>
		<servlet-name>mvcdispather</servlet-name>
		<servlet-class>org.frameworkset.web.servlet.DispatchServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<!--如果有多个目录需要加载,请用,号分隔-->
			<param-value/WEB-INF/conf/bboss-*.xml</param-value>
		</init-param>
		<load-on-startup>0</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>mvcdispather</servlet-name>
		<url-pattern>*.page</url-pattern>
	</servlet-mapping>
	


其中的/WEB-INF/conf/bboss-*.xml很关键,他会扫描/WEB-INF/conf下所有以bboss-开头的mvc xml配置文件并加载之;这里可以配置多个目录,用逗号分隔,只要bboss-mvc.xml放在其中的一个目录下就会在应用启动的时候被加载。

2.bboss-mvc.xml中经常会用到的配置

2.1 文件上传插件配置

 <property name="multipartResolver"   f:encoding="UTF-8"
         class="org.frameworkset.web.multipart.commons.CommonsMultipartResolver"/>    


常用的配置属性有:
encoding,一般被配置为utf-8,用来对附件上传表单中的请求参数进行单独的编码转换,避免中文乱码问题。
maxUploadSize:允许上传的最大文件大小,单位为byte,为-1时不限制大小。
maxInMemorySize:允许在内存中存放的最大文件块大小,以byte为单位,默认为10K
uploadTempDir:指定上传文件存放的临时目录,默认为应用临时目录

2.2 文件下载、json响应、字符串响应插件配置
<property name="httpMessageConverters">
     	<list>
     		<property class="org.frameworkset.http.converter.json.MappingJacksonHttpMessageConverter"/>
     		<property class="org.frameworkset.http.converter.StringHttpMessageConverter"/>
     		<property class="org.frameworkset.http.converter.FileMessageConvertor"/>
     	</list>        
     </property>


如果不指定"org.frameworkset.http.converter.json.MappingJacksonHttpMessageConverter,那么控制方法中以下写法将不能正常工作:
public @ResponseBody(datatype="json") GouWuChe datagrid_data()

也就是说不能正确地将对象GouWuChe 转换为json对象返回给请求客户端。

如果不指定"org.frameworkset.http.converter.FileMessageConvertor,那么控制器方法的以下写法将不能正常工作:
public @ResponseBody File downloadFileFromFile(@RequestParam(name = "fileid") String fileid)
			throws Exception

也就是说不能正常地下载返回的File对应的文件。

如果不指定"org.frameworkset.http.converter.StringHttpMessageConverter,那么控制器方法的以下写法将不能正常工作:
public @ResponseBody(charset = "GBK")
	String sayHelloEnum(@RequestParam(name = "sex") SexType type)

也就是说不能正常地将返回值String响应给客户端。

2.3 全局拦截器配置(最常见的就是页面保护机制配置)

<!-- 配置全局控制器方法拦截器 -->
     <property name="org.frameworkset.web.servlet.gloabel.HandlerInterceptors" >
     	<list componentType="bean">
     		<!-- 配置认证检查拦截器,默认拦截所有的控制器请求 -->
     		<property class="com.chinacreator.security.SYSAuthenticateInterceptor">
     			<!-- 配置认证检查拦截器拦截url模式规则 -->
     			<!-- <property name="patternsInclude">
     				<list componentType="string">
     					<property value="/**/*.page"/>
     				</list>
     			</property>-->
     			<!-- 配置认证检查拦截器不拦截url模式规则 -->
     			<property name="patternsExclude">
     				<list componentType="string">
     					<property value="/uddi/queryservice/main.page"/>
     					<property value="/uddi/queryservice/verify.page"/>
     					<property value="/uddi/queryservice/requesterVerify.page"/>
     					<property value="/uddi/queryservice/detail.page"/>
     					<property value="/uddi/servicemanage/basic.page"/>    
     					<property value="/uddi/servicemanage/servicedesc.page"/>
     					<property value="/uddi/servicemanage/listmetadata.page"/>
     					<property value="/uddi/queryservice/visitpermission.page"/>
     					
     					<property value="/uddi/queryservice/logout.page"/>
     					
     					
     				</list>
     			</property>
     			<property name="redirecturl" value="/login.jsp"/>
     		</property>
     	</list>
     </property>


这里展示的就是实际项目中页面保护拦截器的配置,bboss mvc中提供页面保护的基础抽象实现:
org.frameworkset.web.interceptor.AuthenticateInterceptor


具体的页面保护拦截器只需要实现抽象方法:
protected boolean check(HttpServletRequest request,
			HttpServletResponse response, HandlerMeta handlerMeta)

即可,方法的前两个参数一看就明白,关键是HandlerMeta 参数,这个是当前控制器的元数据对象,包含了控制器的所有配置信息,一般不会用到。方法的逻辑就是具体的页面保护监测逻辑,如果用户已经登录则继续完成请求(返回true),否则(返回false)跳转到redirecturl指定的页面地址(通常是登录页面),通过directtype属性来指定是forward方式还是redirect方式;通过exposeModelAttributes属性来指定是否要将当前请求的页面地址和相关参数传递到登录页上面去,以便登录成功后返回当前请求页面。patternsInclude属性列表用来指定需要做页面保护的所有页面地址,不配置表示对所有控制器请求做页面保护监测。patternsExclude列表属性用来指定哪些页面请求不需要做页面保护。

2.4 url重写规则配置

这个是用来配置所有控制器方法跳转地址是否需要进行url重写以及怎么重写的规则进行配置,以下就是最常用的配置:
<property name="viewResolver" class="org.frameworkset.web.servlet.view.InternalResourceViewResolver" singlable="true">
        <property name="viewClass" value="org.frameworkset.web.servlet.view.JstlView"/>
        <property name="prefix" value=""/>
        <property name="suffix" value=""/>   </property>


以上配置其实并没有设置重写规则,因为url重写前置prefix被配置为"",重写后缀suffix也被配置为"",这样控制跳转地址配置或者直接返回的地址串就是实际的物理url地址,mvc框架不做任何处理。
除非有特殊要求的项目才会开启url重写规则,也就是配置url重写前缀prefix和重写后缀suffix:
<property name="viewResolver" class="org.frameworkset.web.servlet.view.InternalResourceViewResolver" singlable="true">
        <property name="viewClass" value="org.frameworkset.web.servlet.view.JstlView"/>
        <property name="prefix" value="/jsp/"/>
        <property name="suffix" value=".jsp"/>   </property>

url重写前置prefix被配置为"/jsp/",重写后缀suffix也被配置为".jsp",这样控制跳转地址配置或者直接返回的地址串就是:"/jsp/"+returl+".jsp"。有人可能会担心url重写规则是否会影响性能,其实不会的,因为url只会被计算一次,后面就从缓冲区中取已经重写好的地址了。

以上就是bboss-mvc.xml中比较重要的一些应用可能会用到并修改的配置,其他的配置内容基本不用开发人员修改,保持默认配置即可。


   发表时间:2011-08-05  
LZ框架需要的jar包在哪里可以下载啊?
0 请登录后投票
   发表时间:2011-08-05  
ainidehsj 写道
LZ框架需要的jar包在哪里可以下载啊?


可以到这里下载:
http://www.bbossgroups.com/file/download.htm?fileName=bbossupload.zip
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics