|
1、搭建好开发环境后 在数据库里建表 ctreat table qa (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){
return this.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中加入对应的验证
--------------
yrtest error!
必须填写 ${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.最后的效果
------------
提交后数据插入到数据库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")
|
|
|