如何基于表单的简单开发修改表单字段值
发布日期:2009-6-26 信息来源:http://www.chysoft.net

在表单定义中我们会给表单字段设置一个名称(对应HTML元素的name),缺省的一般为“数据库别名_字段名”,虽然表单字段名称可以任意设置,在表单字段名称可以在以下情况下被引用:
1、通过基于表单的开发读取/设置表单字段值
2、工作流定义中的作为变量,进行引用
3、被模板部件引用,如:格式化编辑、在线编辑部件等。
4、模板Action中如果定义set方法,且名称同表单名称,则表单引擎在实例化action的同时会调用set方进行赋值,其值为表单元素对应的数据。

下面我们重点讲述如何通过表单的开发修改字段值
引用表单字段是通过指定格式:如,F_pwd_2,由“F_”和表单元素名称两部分组成,其中F_表示该变量是对字段的引用。
如果在模板脚本中修改字段值,直接使用<% F_pwd_2=”修改内容”%>,”修改内容”随字段类型而定,如果是整数则类似<% F_pwd_2=123%>,时间类型使用字符串表示。
如果在模板Action中设置字段值,则在java代码中处理,示例:
(其他包引用,略)

import net.business.engine.common.I_TemplateAction;
public class TestAction implements I_TemplateAction
{
public int execute(TemplateContext context) throws Exception
{
//判断修改的条件,计算修改值等
context.put("F_pwd_2", "测试的问题");
context.put("F_CreatTime_3", "2009-03-01 15:12:11");

return SUCCESS;
}
}
Action方式修改字段一般使用模板显示前的action,在action中处理适合于批量字段,或多个表单都存在类似的字段值来源。如果一般模板中已经存在模板显示前的action,则需要通过在另外一个action中调用本action,代码实例如下:
import net.business.engine.common.I_TemplateAction;
public class NewTestAction implements I_TemplateAction
{
public int execute(TemplateContext context) throws Exception
{
//自身的代码,根据需要放在前后
TestAction action = new TestAction ();
int state = 0;
if((state=action.execute(context)) != SUCCESS) return state;

return SUCCESS;
}
}

应用例子:从通过actio初始化表单字段的值
假设表单中有需要初始化的表单元素名称为:address
1、定义好表单并绑定字段
2、创建一个模板显示前的Action的java类,代码示例如下:
package net;

import net.business.engine.common.I_TemplateAction;
public class Test1Action implements I_TemplateAction
{
public int execute(TemplateContext context) throws Exception
{
//可通过context 获取表单的内置对象,如:context.getRequest()返回HttpServletRequest

//获取需要初始化的值,从其他已有数据库,或其他位置获取
String initValue = "初始化的值";

//address是定义的表单字段的name
context.put("F_address", initValue);

return SUCCESS;
}
}

3、在模板的action定义中,添加模板显示前的action:net.Test1Action

重要提示:以上Test1Action的java代码,可以在myeclipse中断点调试

粤ICP备11095012号-1
Copyright 2005-2018 深圳市承元软件技术有限公司