- 浏览: 699328 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (364)
- quick start (57)
- bboss aop (43)
- bboss mvc (48)
- bboss persistent (96)
- bboss taglib (30)
- bboss event (10)
- bbossgroups (52)
- bboss (32)
- bboss会话共享 (17)
- bboss rpc (7)
- bboss 国际化 (5)
- bboss 序列化 (9)
- bboss cxf webservice (8)
- bboss hessian (3)
- bboss 安全认证SSO (15)
- bboss 工作流 (6)
- 平台 (18)
- bboss quartz (3)
- 杂谈 (5)
- 大数据 (1)
- bboss elastic (24)
- bboss http (1)
- bboss kafka (1)
- Elasticsearch Scroll和Slice Scroll查询API使用案例 (1)
最新评论
-
qianhao123:
...
采用gradle构建和发布bboss方法介绍 -
qianhao123:
[img][/img]
采用gradle构建和发布bboss方法介绍 -
yin_bp:
欢迎大家参与working
高性能elasticsearch ORM开发库使用介绍 -
qq641879434:
万分感谢
bboss 持久层sql xml配置文件编写和加载方法介绍 -
yin_bp:
qq641879434 写道怎么设置配置文件 可以查看执行的S ...
bboss 持久层sql xml配置文件编写和加载方法介绍
ModelAndView使用方法-一个关于校验码生成的bbossmvc restful示例1
bboss mvc即将伴随bbossgroups 2.1一起发布,这里我们先看一个bboss-mvc 的restful风格的案例:
1.图形码校验控制器-ImageValidatorController
/* * Copyright 2008 biaoping.yin * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.frameworkset.web.spi.validator; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.frameworkset.util.annotations.Attribute; import org.frameworkset.util.annotations.AttributeScope; import org.frameworkset.util.annotations.HandlerMapping; import org.frameworkset.util.annotations.PathVariable; import org.frameworkset.util.annotations.RequestMethod; import org.frameworkset.util.annotations.RequestParam; import org.frameworkset.web.servlet.ModelAndView; /** * <p>Title: ImageValidatorController.java</p> * <p>Description: </p> * <p>bboss workgroup</p> * <p>Copyright (c) 2008</p> * @Date 2010-11-13 * @author biaoping.yin * @version 1.0 */ @HandlerMapping("/rest/imagevalidator") public class ImageValidatorController { //http://localhost:8080/bboss-mvc/rest/imagevalidator/abcefg1234/6 @HandlerMapping(value="/{codelist}/{codenum}",method={RequestMethod.GET,RequestMethod.POST}) public void generateImageCode( @PathVariable("codelist") String codelist, @PathVariable("codenum") int codenum, HttpServletRequest request,HttpServletResponse response) { String codekey = "imagecodekey"; HttpSession session = request.getSession(true); RandImgCreater rc = new RandImgCreater(response,codenum,codelist); String rand = rc.createRandImage(); session.setAttribute(codekey,rand); } // http://localhost:8080/bboss-mvc/rest/imagevalidator @HandlerMapping(method={RequestMethod.POST,RequestMethod.GET}) public ModelAndView checkImageCode(@RequestParam(name="imagecode") String imagecode, @Attribute(name="imagecodekey",scope=AttributeScope.SESSION_ATTRIBUTE) String oldcode) { String message = ""; if(imagecode == null || imagecode.equals("")) message = "请输入图片校验码。"; else if(oldcode == null) message = "对不起,你已经提交过了。"; else if(!imagecode.equals(oldcode)) { message = "校验码有误,请重新输入。"; } else { message = "ok。"; } ModelAndView view = new ModelAndView("/validate/imagevalidate","message",message); return view; } }
2.生成图形码的组件
/* * Copyright 2008 biaoping.yin * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.frameworkset.web.spi.validator; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletResponse; /** * <p> * Title: RandImgCreater.java * </p> * <p> * Description: * </p> * <p> * bboss workgroup * </p> * <p> * Copyright (c) 2008 * </p> * * @Date 2010-11-13 * @author biaoping.yin * @version 1.0 */ public class RandImgCreater { private static final String CODE_LIST = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; private HttpServletResponse response = null; private static final int HEIGHT = 20; private static final int FONT_NUM = 4; private int width = 0; private int iNum = 0; private String codeList = ""; private boolean drawBgFlag = false; private int rBg = 0; private int gBg = 0; private int bBg = 0; public RandImgCreater(HttpServletResponse response) { this.response = response; this.width = 13 * FONT_NUM + 12; this.iNum = FONT_NUM; this.codeList = CODE_LIST; } public RandImgCreater(HttpServletResponse response, int iNum, String codeList) { this.response = response; this.width = 13 * iNum + 12; if(iNum > 0) this.iNum = iNum; if(codeList != null) this.codeList = codeList; } public String createRandImage() { BufferedImage image = new BufferedImage(width, HEIGHT, BufferedImage.TYPE_INT_RGB); Graphics g = image.getGraphics(); Random random = new Random(); if (drawBgFlag) { g.setColor(new Color(rBg, gBg, bBg)); g.fillRect(0, 0, width, HEIGHT); } else { g.setColor(getRandColor(200, 250)); g.fillRect(0, 0, width, HEIGHT); for (int i = 0; i < 155; i++) { g.setColor(getRandColor(140, 200)); int x = random.nextInt(width); int y = random.nextInt(HEIGHT); int xl = random.nextInt(12); int yl = random.nextInt(12); g.drawLine(x, y, x + xl, y + yl); } } g.setFont(new Font("Times New Roman", Font.PLAIN, 18)); String sRand = ""; for (int i = 0; i < iNum; i++) { int rand = random.nextInt(codeList.length()); String strRand = codeList.substring(rand, rand + 1); sRand += strRand; g.setColor(new Color(20 + random.nextInt(110), 20 + random .nextInt(110), 20 + random.nextInt(110))); g.drawString(strRand, 13 * i + 6, 16); } g.dispose(); try { ImageIO.write(image, "JPEG", response.getOutputStream()); } catch (IOException e) { } return sRand; } public void setBgColor(int r, int g, int b) { drawBgFlag = true; this.rBg = r; this.gBg = g; this.bBg = b; } private Color getRandColor(int fc, int bc) { Random random = new Random(); if (fc > 255) fc = 255; if (bc > 255) bc = 255; int r = fc + random.nextInt(bc - fc); int g = fc + random.nextInt(bc - fc); int b = fc + random.nextInt(bc - fc); return new Color(r, g, b); } }
3.展示的jsp页面WebRoot/jsp/validate/imagevalidate.jsp
<%@ page contentType="text/html;charset=UTF-8" %> <%@ taglib uri="/WEB-INF/pager-taglib.tld" prefix="pg"%> <form name="frm" method="post" action="/bboss-mvc/rest/imagevalidator"> Hello Image Test<br/> checkCode:<img src="/bboss-mvc/rest/imagevalidator/abcdefghijk123456/5"><br/> please input the checkCode:<input type="text" name="imagecode" value=""><br/> <input type="submit" name="btn1" value="check"> </form> ${message}
4.控制器配置
5.使用方法和说明
ImageValidatorController映射的根路径为/rest/imagevalidator:
@HandlerMapping("/rest/imagevalidator") public class ImageValidatorController
方法generateImageCode方法可以映射到以下地址,主要用来生成图形码:
http://localhost:8080/bboss-mvc/rest/imagevalidator/abcefg1234/6
@HandlerMapping(value="/{codelist}/{codenum}",method={RequestMethod.GET,RequestMethod.POST}) public void generateImageCode( @PathVariable("codelist") String codelist, @PathVariable("codenum") int codenum, HttpServletRequest request,HttpServletResponse response)
地址中的abcefg1234段对应generateImageCode方法的codelist参数,标识生成图像码的种子 地址段中的/6对应generateImageCode方法的codenum参数,标识生成图像码位数 这样generateImageCode方法根据这两个参数生成相应的图形码,并将图像码存放到以imagecodekey作为key的session属性中。 以便后续校验之用。
方法checkImageCode用来校验用户输入的图形码和generateImageCode方法存放在session中图像码,根据比较的结果将相应的结果信息输出到前端,比较完毕后跳转到地址:
/validate/imagevalidate
bboss-mvc根据映射规则将这个地址映射到页面WebRoot/jsp/validate/imagevalidate.jsp
http://localhost:8080/bboss-mvc/rest/imagevalidator @HandlerMapping(method={RequestMethod.POST,RequestMethod.GET}) public ModelAndView checkImageCode(@RequestParam(name="imagecode") String imagecode, @Attribute(name="imagecodekey",scope=AttributeScope.SESSION_ATTRIBUTE) String oldcode) 方法参数对应 imagecode参数的值, oldcode参数的值自动从session中通过key imagecodekey自动获取
6.映射规则配置bboss-mvc.xml
<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>
评论
3 楼
yin_bp
2011-02-27
bbossgroups 3.0已经发布,详细信息访问:
http://yin-bp.iteye.com/admin/blogs/932466
http://yin-bp.iteye.com/admin/blogs/932466
2 楼
sures
2010-12-06
期待bbossgroups 2.1
1 楼
yin_bp
2010-11-17
如果要使用国际化功能,我们首先要在messages.properties文件中添加以下代码:
然后修改ImageValidatorController 控制器中的checkImageCode方法中message变量对应的值为相应的message code:
最后修改一下WebRoot/jsp/validate/imagevalidate.jsp中的相关代码,将${message}修改为:
message标签通过<%@ taglib uri="/WEB-INF/pager-taglib.tld" prefix="pg"%> 导入。
这样就可以了,为了防止${message}对应的code不存在,导致系统后台运行报错:
修要修改一下资源解析组件将属性useCodeAsDefaultMessage设置为true
image.validate.emptycode=请输入图形码 image.validate.notmatched=图形码没有匹配上 image.validate.submitted=对不起你已经提交过了 image.validate.ok=匹配成功
然后修改ImageValidatorController 控制器中的checkImageCode方法中message变量对应的值为相应的message code:
。。。。。。 String message = ""; if(imagecode == null || imagecode.equals("")) message = "image.validate.emptycode"; else if(oldcode == null) message = "image.validate.submitted"; else if(!imagecode.equals(oldcode)) { message = "image.validate.notmatched"; } else { message = "image.validate.ok"; } 。。。。。。
最后修改一下WebRoot/jsp/validate/imagevalidate.jsp中的相关代码,将${message}修改为:
<pg:message code="${message}"/>
message标签通过<%@ taglib uri="/WEB-INF/pager-taglib.tld" prefix="pg"%> 导入。
这样就可以了,为了防止${message}对应的code不存在,导致系统后台运行报错:
修要修改一下资源解析组件将属性useCodeAsDefaultMessage设置为true
发表评论
-
bboss mvc控制器方法跳转地址设置方法介绍
2017-12-09 21:52 916bboss mvc控制器方法跳转地址设置方法介绍 1.直接指 ... -
bboss mvc json插件设置日期类型格式方法
2017-02-28 11:33 749bboss mvc json插件设置日期类型格式方法 一般的 ... -
bboss mvc控制器实现etag和last modify两种http缓存机制
2016-09-07 23:48 1274bboss mvc控制器实现etag和last modify两 ... -
bboss wordpdf构建部署介绍
2016-09-02 15:47 574bboss wordpdf构建部署介绍 下载 源码下载地址: ... -
解决tomcat stop报Illegal access: this web application instance has been stopped异常方法
2015-12-26 23:41 5988解决tomcat stop报Illegal access: t ... -
bboss mvc文件上传实例
2015-06-08 11:13 37本文着重介绍bboss mvc文件上传功能,切入正题 功能点 ... -
bboss mvc @RequestBody注解使用说明
2014-10-23 15:53 1058@RequestBody可以将客户端请求报文体通过数据类型转换 ... -
bboss安全认证过滤器认证后重定向到请求页面功能介绍
2014-10-12 10:55 1357本文介绍bboss安全认证 ... -
bboss mvc控制器方法响应报文注解ResponseBody使用说明
2014-09-20 22:39 1201bboss mvc控制器方法响应 ... -
bboss mvc启动事件监听器使用方法
2014-09-02 20:25 1165在实际应用,往往需要在mvc容器启动后执行相应的操作,bbos ... -
bboss session共享使用方法介绍
2014-05-10 16:12 6162bboss session共享使用方法 ... -
bboss将一个组件同时发布为webservice,hessian,http三种服务方法介绍
2014-04-12 14:31 1662bboss将一个组件同时发布为webservice,hessi ... -
bboss发布apache cxf 2.7.6服务和定义客户端服务实例可能产生冲突解决办法
2014-03-22 23:16 1098bboss发布apache cxf 2.7.6服务和定义客户端 ... -
bboss mvc接收和响应xml格式数据的方法
2013-12-28 19:14 1080本文介绍bboss mvc接收和响应xml格式数据的方法 1 ... -
bboss mvc忽略对bean属性进行参数绑定方法
2013-10-10 20:20 978bboss mvc忽略对bean属性进行参数绑定方法非常简单, ... -
bboss mvc参数绑定注解RequestParam使用说明
2013-08-17 00:02 4211bboss mvc参数绑定注解RequestParam使用说明 ... -
bboss mvc参数绑定注解MapKey使用说明
2013-08-10 23:27 1197bboss mvc参数绑定注解MapK ... -
bboss mvc获取request,session,response,pageContext对象方法
2013-07-12 13:19 1397本文介绍基于bboss mvc后台java程序如何获取requ ... -
bboss mvc ajax响应输出中文乱码解决方法
2013-07-10 23:08 1075对于bboss mvc ajax请求响应出现的中文乱码问题,怎 ... -
bboss libreoffice结合使用说明
2012-12-23 23:03 1292bboss libreoffice结合使用说明已经文件下载插件 ...
相关推荐
SpringMVC将服务器处理后的结果返回并带给浏览器
Spring MVC 4.2.4 RELEASE 中文文档完整翻译稿.zip"包含了Spring MVC 4.2.4版本的官方文档的中文全译版,这对于中文开发者来说是一个极其宝贵的资源,它可以帮助我们更深入地理解Spring MVC的工作原理和使用方法。...
在Spring MVC框架中,ModelAndView是一个非常重要的类,它用于处理控制器(Controller)与视图(View)之间的数据传递。本篇文章将深入探讨ModelAndView的使用细节,帮助你更好地理解和运用Spring MVC。 首先,理解...
Spring MVC 是一个基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于构建控制器层,实现模型-视图-控制器(Model-View-Controller)的设计模式。在本文中,我们将深入探讨Spring MVC的核心概念...
例如,我们可以创建一个`@RestController`类,定义一个处理POST请求的方法,使用`@RequestBody`注解将请求体中的数据绑定到Java对象上,然后调用业务层服务进行持久化操作。 ```java @RestController public class ...
Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,主要用于构建 MVC(Model-View-Controller)模式的 Web 应用程序。在本入门示例中,我们将深入理解 Spring MVC 的核心概念和关键组件...
- **@Controller**:标记在类上,表示该类是一个Spring MVC的控制器。 - **@RequestMapping**:用于映射HTTP请求,可以标注在类或方法上,定义请求的URL模式。 - **@GetMapping, @PostMapping, @PutMapping, @...
在构建Web服务时,Spring框架提供了强大的支持,特别是在创建RESTful API方面。REST(Representational State Transfer)是一种架构风格,用于构建简洁、可扩展的网络应用程序。本篇文章将深入探讨如何利用Spring...
Spring MVC 是一个基于Java的轻量级Web应用程序框架,它为构建RESTful应用程序提供了强大的支持。这个框架是Spring生态系统的一部分,旨在简化MVC(Model-View-Controller)架构的实现,提高了开发者的效率和代码的...
Spring Web模块和Spring Web MVC模块是Spring框架中的两个关键组成部分,它们在构建Web应用程序时起着至关重要的作用。 Spring Web模块(spring-web-5.2.3.RELEASE.jar)主要负责提供Web相关的功能支持,包括HTTP...
在这个基于注解的简单示例中,我们将探讨如何使用Spring MVC创建一个基本的控制器、处理HTTP请求,并展示视图。让我们深入理解Spring MVC的核心概念和关键组件。 首先,Spring MVC是Spring框架的一部分,它采用模型...
SpringMVC是Spring框架的一个模块,专为构建Web应用程序提供模型-视图-控制器(MVC)架构。在本文中,我们将深入探讨SpringMVC的工作原理、主要组件以及如何使用ModelAndView来处理请求和响应。 1. **SpringMVC概述...
- **资源(Resources)**: RESTful 服务的核心是资源,每个 URL 代表一个特定的资源。 - **统一接口(Uniform Interface)**: 提供简单的、一致的交互方式,包括 CRUD(Create, Read, Update, Delete)操作。 - *...
Spring MVC是Spring框架的一个模块,主要用于构建模型-视图-控制器(MVC)架构的Web应用。它提供了处理HTTP请求、数据绑定、验证、国际化等功能,简化了Web应用的开发流程。 二、环境搭建 首先,你需要安装Java ...
5. **ModelAndView**:这是Spring MVC提供的一个类,用于同时封装模型数据和视图名称,便于在控制器方法中返回。 6. **@Controller、@RequestMapping**:这两个注解是Spring MVC中非常重要的,`@Controller`标记一...
Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,主要用于构建 MVC(Model-View-Controller)模式的 Web 应用程序。在本项目 "spring-mvc-study" 中,我们可以看到一些核心的文件和...
1. **MANIFEST.MF**:这是一个清单文件,用于记录关于JAR文件的元数据,如版本信息、主类等。在Spring Boot应用中,这个文件会指定应用的启动类。 在Spring MVC框架中,主要涉及以下几个核心概念: 1. **...
`ModelAndView` 是 Spring MVC 框架中的一个重要组件,它在处理控制器(Controller)和视图(View)之间的数据传递过程中起着关键作用。 `ModelAndView` 是 Spring MVC 中的一个类,用于将处理结果(Model)和视图...
Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,专为构建 MVC(Model-View-Controller)架构的应用程序而设计。本入门示例将帮助初学者理解如何使用 Spring MVC 来开发 web 应用。 ...
例如,要创建一个处理/blog/{id}的GET请求的方法,可以这样写: ```java @RequestMapping(value = "/blog/{id}", method = RequestMethod.GET) public ModelAndView getBlog(@PathVariable Long id) { // 获取并...