当前位置:编程学习 > C#/ASP.NET >>

T4模版生成SpringMVC构造REST代码:第九篇 用T4模版生成控制层代码

第一步,在“解决方案JavaGenerate”中添加类库,用于存放控制层的模版及相应文件,我们命名这个类库为JavaControllers。注意框架选择。

第二步,增加t4空模版,在解决方案管理器中,选择JavaRequertModels项目,点击右键,选择“添加
 ”--〉“新建项”,选择"Blank T4 Template",输入名称“JavaControllers.tt",然后点击"添加".


第三步,修改JavaControllers.tt模版,我直接贴代码

 

[csharp]  <#@ template language="C#" debug="false" hostspecific="true"#> 
<#@ include file="EF.Utility.CS.ttinclude"#> 
<#@ assembly name="EnvDTE" #> 
<#@ import namespace="EnvDTE"#> 
<#@ output extension=".cs"#><# 
CodeGenerationTools code = new CodeGenerationTools(this); 
MetadataLoader loader = new MetadataLoader(this); 
CodeRegion region = new CodeRegion(this, 1); 
MetadataTools ef = new MetadataTools(this); 
string inputFile = @"..\EDMX\dblxh.edmx";//EDMX项目中dblxh.edmx的路径  
 
MetadataWorkspace metadataWorkspace = null; 
bool allMetadataLoaded =loader.TryLoadAllMetadata(inputFile, out metadataWorkspace); 
EdmItemCollection ItemCollection = (EdmItemCollection)metadataWorkspace.GetItemCollection(DataSpace.CSpace); 
 
EntityFrameworkTemplateFileManager fileManager = EntityFrameworkTemplateFileManager.Create(this); 
 
// 发出文件  
foreach (EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e => e.Name)) 
{    
    string filePascialName=getModelsPascialName(entity.Name);//Pascial风格的类名称  
    string fileCamelName=getModelsCamelName(entity.Name);//Camel风格的类名称  
     
    fileManager.StartNewFile(filePascialName+ "Controller.java");//输出的类文件名称,及开始输出文件 
#>  
package com.jiahe.rest.demo2.controller; 
/*********************************************************************************
 * Copyright (c) XXXXX LIMITED  2012 All Rights Reserved
 * 系统名称:
 * 程序模块文件名称:<#=filePascialName+ "Controller.java"#>
 * 摘要:
*********************************************************************************/ 
 
import java.io.IOException; 
import java.util.List; 
 
import javax.servlet.http.HttpServletResponse; 
 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Controller; 
import org.springframework.ui.Model; 
import org.springframework.web.bind.annotation.RequestBody; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.bind.annotation.ResponseBody; 
 
import com.jiahe.rest.demo2.models.<#=filePascialName#>; 
import com.jiahe.rest.demo2.requestmodels.<#=filePascialName#>Request; 
import com.jiahe.rest.demo2.responseModels.ResultData; 
import com.jiahe.rest.demo2.service.<#=filePascialName#>Service; 
 
 
/*********************************************************************************
 * 
 * <pre>
 * [版本说明]
 * 1.0    2012/08/30   初版
 * </pre>
 *  @version  1.0 2013/5/16
 *  @author   lxh
 *********************************************************************************/ 
 
@Controller 
@RequestMapping("/<#=filePascialName.ToLower()#>") 
public class <#=filePascialName#>Controller { 
 
    @Autowired 
    private <#=filePascialName#>Service <#=fileCamelName#>Service; 
     
    /**
     * add  增加一个<#=filePascialName#>
     * http://localhost:8080/demo2/<#=filePascialName.ToLower()#>/add
     * @param requestData
     * @param mode
     * @param response
     * @return
     * @throws IOException
     */ 
    @RequestMapping(value = "/add", method = RequestMethod.POST) 
    @ResponseBody 
    public ResultData<<#=filePascialName#>> add(@RequestBody <#=filePascialName#>Request requestData, 
            Model mode, HttpServletResponse response) throws IOException {       
        ResultData<<#=filePascialName#>> resultData =new ResultData<<#=filePascialName#>>(); 
        resultData.setStatus(0); 
        resultData.setData(null); 
        if (requestData==null) {             
            resultData.setMessage("参数错误:没有传入参数"); 
        } else {             
            //身份验证处理  
            try { 
                int i=<#=fileCamelName#>Service.insert(requestData.get<#=filePascialName#>()); 
                if (i==1){ 
                    resultData.setStatus(1); 
                    resultData.setMessage("添加成功"); 
                } else { 
                    resultData.setMessage("添加失败"); 
                } 
            } catch (Exception e) { 
                resultData.setMessage("添加失败:"+e.getMessage()); 
            }            
        } 
        return resultData; 
    } 
  &

补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,