搜索泥称 发表于 2019-1-27 14:08:20

open 测试者程序开发(webx)

  1、搭建好开发环境后 在数据库里建表 ctreat tableqa (user_Id varchar(32);name varchar(32));
  2、在itabis 里 qa.xml配置
  ---------------------
  
  
  
  
  
  
  
  user_id,name
  
  
  INSERT INTO
  QA(user_id,name)
  VALUES(#userId#,#name#)
  
  --------------
  sql-map-config.xml 加
  3、写entry ,qa.java
  ----------------------
  public class Qa implements Serializable{
   private static final long serialVersionUID = 1L;
   public String userId;
   public String name;
  public String getUserId() {
  return userId;
  }
  public void setUserId(String userId) {
  this.userId = userId;
  }
  public String getName() {
  return name;
  }
  public void setName(String name) {
  this.name = name;
  }
  }
  --------------------------
  4、service 层写 QaService.java
  ------------
  public class QaService {
   @DaoManager
      private GenericDao qaDao;
  public void create(Qa qa ) {
  this.qaDao.create(qa);
  }
  public Qa getUserById(String userId){
   returnthis.qaDao.load("getUserId", userId);
  }
  public void update(Qa qa){
  this.qaDao.update(qa);
  }}
  --------------------------
  5、module action 层写 QaAuthAction.java ,
  -------------------
  public class QaAuthAction {
  private final static Logger logger = LoggerFactory
  .getLogger(QaAuthAction.class);
  @Autowired
  private QaService qaService;
  public void doAddQa(@FormGroup("qaForm") Qa qa,
  @FormField(name = "formError", group = "qaForm") CustomErrors err,
  Context context, Navigator nav, HttpSession session) {
  try {
  String userId = (String) session.getAttribute(WebUtils.USER_ID);
  qa.setUserId(userId);
  this.qaService.create(qa);
  } catch (Exception e) {
  err.setMessage("addErrorMessage");
  logger.error("创建测试者基本信息发生错误!", e);
  }}}
  -------------------------------------
  6、 QaAuthAction.java 中用到 qaService,要在spring sevice.xml中配置
  ---------------
  
  
  --------------------
  7、templates /screen/qaInfo.vm中做如下配置 ,对应的header.vm里加入 对应的 $!name
  ------------
  #set ($group = $form.qaForm.defaultInstance)
  
  
  
  
  
  测试者基本信息
  
  
  
  
  
  测试者基本信息 
  
  
  填写测试者资料
  
  
  $csrfToken.hiddenField
   //跟action的类名要对应
  
  
  
  测试者名称:
  
  
  
  
  
  
  
  
  //跟qaAuthAction 方法名称对应
  
  
  
  
  
  
  #if(!$group.formError.valid)
  $!group.formError.message
  #end
  #if(!$group.name.valid)
  $!group.name.message
  #end
  
  
  
  
  seajs.use('/js/developer/qa.js',function(qa){
  qa.init();
  });
  
  ----------------
  8、WEB—INFO form.xml中加入对应的验证
  --------------
  
  
  
  yrtesterror!
  
  
  
  
  必须填写 ${displayName}!
  
  
  
  -----------------------
  此处qaForm ,name 都是和qaInfo.vm,QaAuthAction 类 doAddQa ,formGroup 和formFeild一致的。
  9.也可以通过js方式来验证。在web-deploy /htdocs/qa.js
  --------------
  define(function(require,exports,module){
  var $ = require('lib/jquery'),
  popup = require('popup');
  };
  var _init = function(){
  
  $(".personal-qa-form").on("submit",function(ev){
  var qName = $("#qa-name").val();
  qName = $.trim(qName);
  if(!qName){
  return true;
  }else{
  alert('error');
  }
  })
  };
  exports.init = _init;
  })
  -----------------
  10.最后的效果
  ------------
http://blog.运维网.com/attachment/201211/143158269.jpg
  提交后数据插入到数据库qa表中。
  11.遇到的问题及解决方法
  1)ibatis 解析不了qa.xml,最后发现entry 中userId 定义拼写成useId
  2)QaService 取不到,错误原因是 spring 对应的service.xml没配置 对应的bean qaService
  3)页面中一直少component qa:,错误原因qaInfo.vm中多引用了变量 $control.setTemplate("qa:qa")



页: [1]
查看完整版本: open 测试者程序开发(webx)