`
jamesby
  • 浏览: 383922 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Spring MutiActionController实现FormController在Controller中的代码事例

阅读更多
		public ModelAndView handelXqResourcePublish(HttpServletRequest request,
			HttpServletResponse response) throws ServletException {
		Map model = new HashMap();
		try {
			//绑定
			XqZyfbFormBean formBean = new XqZyfbFormBean();
			BindException errorModule = bindObject(request, formBean,
					new XqzyfbValidator());
			if (errorModule.hasErrors())
				formBean.setOperation(XqZyfbFormBean._VIEW);
			
			//取得绑定后模型
			model = errorModule.getModel();
			
			//插入或者更新
			if (XqZyfbFormBean._UPDATE.equals(formBean.getOperation())) {
				XqZyfbModel pojo = new XqZyfbModel();
				pojo.setPkid(formBean.getPkid());
				pojo.setCustname(formBean.getCustname());
				pojo.setPtid(formBean.getPtid());
				pojo.setProdid(formBean.getProdid());
				pojo.setPcname(formBean.getPcname());
				pojo.setLen(formBean.getLen());
				pojo.setSl(formBean.getSl());
				pojo.setDj(formBean.getDj());
				pojo.setJhadr(formBean.getJhadr());
				pojo.setJhdt(formBean.getJhdt());
				pojo.setNote(formBean.getNote());
				pojo.setCmdeptid(new Integer(getUser(request).getCmdeptid()));
				pojo.setLinkmanid(getUser(request).getLinkmanid());
				generalService.saveXqResourcePublish(pojo);
				model.put("errMsg", "操作成功!");
				model.put("url", "/cm/resource/stockXqResource.do?ptid="
						+ formBean.getParamptid() + "&prodid="
						+ formBean.getParamprodid() + "&cmdeptid="
						+ formBean.getParamcmdeptid());
				return new ModelAndView("openerlocation", model);				
			}
			
			//修改取数据
			if (null!=formBean.getPkid()&&formBean.getPkid().intValue()>0)
			{
				XqZyfbModel pojo = generalService.selectXqResourceDetail(formBean.getPkid());
				formBean.setPkid(pojo.getPkid());
				formBean.setCustname(pojo.getCustname());
				formBean.setPtid(pojo.getPtid());
				formBean.setProdid(pojo.getProdid());
				formBean.setPcname(pojo.getPcname());
				formBean.setLen(pojo.getLen());
				formBean.setSl(pojo.getSl());
				formBean.setDj(pojo.getDj());
				formBean.setJhadr(pojo.getJhadr());
				formBean.setJhdt(pojo.getJhdt());
				formBean.setNote(pojo.getNote());				
			}
			
			//新增准备数据
			model.put("prodtypes", generalService.selectProductType());
			model.put("products", generalService.selectProduct());
			model.put("selectproducts", generalService.selectProduct());
		} catch (Exception e) {
			log.error("", e);
			return new ModelAndView("error");
		}
		return new ModelAndView("index_XqResourcePublish", model);
	}	


public class ResourceItemValidator extends AbstractValidator {
	public void validate(Object obj, Errors errors) {
		ResourceItemFormbean formBean = (ResourceItemFormbean) obj;
		if (null == formBean.getBatid() || formBean.getBatid().intValue() <= 0) {
			errors.rejectValue("batid", "batid.required", null, "default message!");
		}
		if (ResourceItemFormbean._SUBMIT.equals(formBean.getAction())) {

			if (null == formBean.getCustid()
					|| formBean.getCustid().intValue() <= 0) {
				errors
						.rejectValue("custid", "custid.required", null,
								"default message!");
			}
			if (null == formBean.getJs() || formBean.getJs().intValue() <= 0) {
				errors.rejectValue("js", "custid.required", null,
						"default message!");
			}
			if (null == formBean.getSl() || formBean.getSl().doubleValue() <= 0) {
				errors.rejectValue("sl", "custid.required", null,
						"default message!");
			}
			if (null == formBean.getDj() || formBean.getDj().intValue() <= 0) {
				errors.rejectValue("dj", "dj.required", null,
						"default message!");
			}
		}
	}
}


<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="c" uri="/WEB-INF/c.tld" %>
<%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<script language="javascript">
<!--
	window.onload=function(){
		form = document.cmForm;
		if (tper>0) form.sl.readOnly=true;
		var error = "";
		<spring:bind path="command.*">
		    <c:forEach items="${status.errorMessages}" var="errorMessage">
		          error=error+"<c:out value="${errorMessage}"/>\n";
		    </c:forEach>
		</spring:bind>
		if (""!=error)
		{
			alert(error);
		}				
	}
-->
</script>
<form:form commandName="command" name="cmForm" action="/cm/resource/resourceSale.do">
	<form:hidden path="batid"/>
	<input type="hidden" name="action" value="submit">
	<form:select path="custid" cssStyle="width:100%">  
		<form:option value="" label=""/>  
		<form:options items="${customer}" itemValue="custid" itemLabel="name"/>  
	</form:select>  	
	<form:input path="address" cssStyle="width:100%"/>
	<form:input path="js" cssStyle="width:100%" onblur="calculatSl();"/>
	<form:input path="sl" cssStyle="width:100%" onblur="calculatJe();"/>
	<form:input path="dj" cssStyle="width:100%" onblur="calculatJe();"/>
	<form:input path="je" cssStyle="width:100%" readonly="true"/>
	<form:textarea path="memo" cssStyle="width:100%" rows="2"/>
	<input type="button" name="btnOK" class="cbutton" onclick="doSubmit();" value="确定">
	<input type="button" name="btnCancle" onclick="window.close();" class="cbutton" value="取消">
</form:form>
分享到:
评论
1 楼 jamesby 2007-02-13  
if (XqZyfbFormBean._UPDATE.equals(formBean.getOperation())) {   
        XqZyfbModel pojo = new XqZyfbModel();   
        pojo.setPkid(formBean.getPkid());   
        pojo.setCustname(formBean.getCustname());   
        pojo.setPtid(formBean.getPtid());   
        pojo.setProdid(formBean.getProdid());   
        pojo.setPcname(formBean.getPcname());   
        pojo.setLen(formBean.getLen());   
        pojo.setSl(formBean.getSl());   
        pojo.setDj(formBean.getDj());   
        pojo.setJhadr(formBean.getJhadr());   
        pojo.setJhdt(formBean.getJhdt());   
        pojo.setNote(formBean.getNote());   
        pojo.setCmdeptid(new Integer(getUser(request).getCmdeptid()));   
        pojo.setLinkmanid(getUser(request).getLinkmanid());   
        generalService.saveXqResourcePublish(pojo);   
        return new ModelAndView("success", model);                  
    }   
       
    //显示明细   
    if (null!=formBean.getPkid()&&formBean.getPkid().intValue()>0)   
    {   
        XqZyfbModel pojo = generalService.selectXqResourceDetail(formBean.getPkid());   
        formBean.setPkid(pojo.getPkid());   
        formBean.setCustname(pojo.getCustname());   
        formBean.setPtid(pojo.getPtid());   
        formBean.setProdid(pojo.getProdid());   
        formBean.setPcname(pojo.getPcname());   
        formBean.setLen(pojo.getLen());   
        formBean.setSl(pojo.getSl());   
        formBean.setDj(pojo.getDj());   
        formBean.setJhadr(pojo.getJhadr());   
        formBean.setJhdt(pojo.getJhdt());   
        formBean.setNote(pojo.getNote());                  
    }   


对于如上代码,formBean中的属性与页面的属性一一对应,pojo与数据库table表中的字段一一对应,这样设计后却出现上面的干嘎代码,因为formBean中的大多数属性和pojo的大多数属性是相同的,但是有一些不同!能够有更简单的办法避免上面的尴尬的代码出现呢?本来想考虑使用反射,但是这么频繁的使用会否带来性能问题.

相关推荐

    Spring3 MVC 实例

    在这个实例中,我们将深入探讨Spring MVC的核心概念和技术,以及如何实现表单验证功能。 首先,Spring MVC是Spring框架的一部分,它遵循模型-视图-控制器(Model-View-Controller)架构模式。在Spring MVC中,模型...

    springMVC整合的spring整合的

    在IT行业中,Spring框架是Java领域的一个核心组件,它提供了丰富的功能来构建高效、可维护的Web应用程序。SpringMVC是Spring框架的一部分,专门用于处理Web应用中的模型-视图-控制器(MVC)架构。本文将深入探讨...

    spring mvc 文档

    本文将重点介绍Spring中的Web开发组件。 **假设**:本文假定读者已经具备一定的Java编程基础,并对MVC(Model-View-Controller)设计模式有一定的了解。此外,还假定读者对Spring框架的基本概念有所了解。 #### 二...

    外文翻译Spring地web MVC 构架模式.pdf

    Spring的MVC(Model-View-Controller)设计模式强调了组件之间的分离,使得开发人员能够更有效地管理应用程序的各个部分,提高代码的可重用性和可测试性。 1. **介绍** Spring作为一个全面的轻量级应用框架,它...

    外文翻译-Spring的web-MVC-构架模式.pdf

    Spring的web支持可以在任何Servlet容器中运行,如Tomcat或Resin,而且它不与特定的解决方案冲突,而是鼓励使用如Servlet、JSP、JTA、JNDI、JDBC和JDO等标准技术,以及Hibernate、Velocity、Log4J等工具进行集成。...

    spring mvc_05

    2. 请求映射:在Spring MVC配置文件中,使用`&lt;bean&gt;`标签定义处理器映射器和处理器适配器,然后通过`&lt;controller&gt;`标签配置控制器,关联请求URL和处理方法。 四、数据绑定与验证 1. 数据绑定:在`handleRequest`...

    Spring In Action SpringMVC 提交表单

    《Spring In Action: SpringMVC 提交表单详解》 在Web开发中,SpringMVC作为Spring框架的一部分,是处理HTTP请求和响应...在实际开发中,应结合实际需求,灵活运用SpringMVC提供的各种功能,提高开发效率和代码质量。

    详解springMVC—三种控制器controller

    这种控制器不需要编写任何 Controller 代码,只需要在配置文件中指定视图名称。这种控制器通常用于简单的页面跳转,例如跳转到登陆页面。 在 Spring MVC 中,可以使用 `ParameterizableViewController` 来实现这种...

    外文翻译-Spring的web-MVC-构架模式 (2).pdf

    - **解耦合**:Spring的设计强调了业务逻辑与Web层的分离,例如,验证应用可以独立于控制器实现,提高代码复用性和测试性。 - **互操作性**:Spring鼓励与其他标准技术(如Servlet、JSP、JTA、JNDI、JDBC、JDO等)...

    外文翻译-Spring的web-MVC-构架模式讲解学习 (2).pdf

    在WebWork中,所有角色(控制器、命令对象、数据传递)都合并到一个单一的Action对象中,而在Spring中,这些角色是分离的,允许更高的灵活性和职责划分。Spring支持独立的控制器、命令对象和用于视图渲染的模型数据...

    Spring Boot 2 Thymeleaf服务器端表单验证实现详解

    Spring Boot 2 Thymeleaf 服务器端表单验证实现详解是指在 Spring Boot 2 中使用 Thymeleaf 模板引擎实现服务器端表单验证的方法。该方法主要使用 Java 的 JSR 303 规范和 Hibernate Validator 实现数据验证。 表单...

    毕设外文文献翻译-Spring的webMVC构架模式 (2).docx

    与Struts相比,Spring不强制使用特定的FormController,而是允许直接操作任何对象,数据绑定也更加灵活,能够直接绑定到业务对象,减少了不必要的转换工作。 3. **灵活性和可扩展性** Spring Web MVC支持控制器、...

    AngularJS 使用 UI Router 实现表单向导

    在使用UI Router实现表单向导时,你需要在你的AngularJS应用中引入ui.router模块。这通常通过在HTML文件中引用ui-router的JS文件来完成。例如,在index.html中,你会看到类似以下的代码段来引入所需的资源: ```...

    使用angularjs实现浮动表单效果.zip

    在本文中,我们将深入探讨如何使用AngularJS实现浮动表单效果。AngularJS是一个强大的JavaScript框架,主要用于构建动态web应用程序。它的双向数据绑定和模块化结构使得开发者能够更高效地处理前端交互,包括创建...

    springmvc 第二个例子(接收表单参数+重定向)

    2. **定义控制器方法**:在Spring MVC的Controller类中,我们需要定义一个处理表单提交的方法。这个方法通常使用`@RequestMapping`注解来指定其映射的URL,并且可以使用`@RequestParam`注解来接收表单参数。 例如:...

    点击回车提交表单,应用Java技术实现。

    虽然题目中提到“应用Java技术实现”,但实际上这段代码主要涉及的是HTML和JavaScript。不过,在Web开发领域内,“Java技术”可能是指包括Java后端处理在内的整体Web开发流程。因此,我们将从以下几个方面进行讲解:...

    ajax提交表单到后台

    在现代Web开发中,AJAX(Asynchronous JavaScript and XML)技术是实现页面无刷新更新的重要手段。本主题将深入探讨如何使用jQuery库的AJAX功能将表单数据提交到后台,以及后台如何使用Spring框架来处理这些数据。...

    传递表单参数

    在MVC(Model-View-Controller)架构中,表单数据的传递主要涉及控制器(Controller)和视图(View)两部分。视图负责展示表单让用户填写,控制器则负责接收并处理表单数据。 ##### 视图层设计 在视图层,通常会使用...

    SpringMVC之表单提交===①===普通表单

    在Spring MVC中,表单提交的处理通常涉及以下组件: 1. **Controller** - 控制器类是Spring MVC的核心组件,它负责接收HTTP请求并进行相应的处理。在处理表单提交时,控制器会有一个方法,通常使用`@RequestMapping...

Global site tag (gtag.js) - Google Analytics