现在的位置: 首页 > 综合 > 正文

newxy爱好者的问题解答(-2007.01.24)

2013年06月17日 ⁄ 综合 ⁄ 共 1858字 ⁄ 字号 评论关闭

近期newxy的爱好者提出一些问题,下面是对些问题的解答。

问:请问,如何支持数据校验功能?

    数据校验有或简或繁的业务逻辑,也有的单纯是数据类型或是否为空的判断.前者需要在后台写java代码来实现,后者可用struts的插件validator来实现,newxy的通用动态formBean支持validator的静态验证方法.

newxy还有一种持续化数据的方法,是为每一表产生一持久类,可以利用这个特性来校验数据,newxy内容很多,到目前还没有对这一特性作介绍.

 

问:使用通用动态formBean,对于在输入过程中不需要明确输入的字段,是不是必须在页面中用hiden列定义?

答:可以不用hidden,formBean中有一字段address,如果这个字段不需要让用户编辑,不别让它出现在表单中.

 

问:关于分页的实现问题

在文档中给出的分页例程如下:

   <div><nlogic:navigate formName="industry" length="20"/></div>

    <table>

    <nlogic:iterate id="rec" name="industry" property="_coll">

      <nhtml:TR >

        <td style="font-size:14px;color:#000088;cursor:hand">

            <bean:write name="rec" property="code"/>

            <bean:write name="rec" property="industry"/>

        </td>

      </nhtml:TR>

    </nlogic:iterate>

    </table>

明显,分页的控制按钮全部在列表的上部,但是,在通常的开发中,这些控制按钮一般都在下部,那么将<div><nlogic:navigate formName="industry" length="20"/></div>放在<nlogic:iterate>...的后面,是否也一样能实现分页?

答:如果将分页标签放到列表下面,需要在<nlogic:iterate />标签中也指定每页长度,length="20",与分页标签length值相同.

 

问:请问,如何获得单条纪录的dto?

答: formBean_coll属性保存的是结果集,formBean作为bean保存了结果集的一条记录数据,可称为当前记录,如果获得的是一条记录,这条记录会保存在_coll记录集中,同样也保存在作为beanformBean,可用Object value=formBean.get("field1")方法得到记录field1字段值.

    看看《2.DAO+通用持久类+通用动态formBean类》、《3.DAO+通用持久类+通用动态formBean+通用DispatchAction类有助于理解。

    "如何根据sql语句产生formbean的数据,进而获得dto?",你可从表单将查询条件传到后台,Action方法中得到的formBean_coll属性就已包含了结果集.表单位传查询条件到后台有两种方法一种是直接的如:

        <nform action="">

           <nhidden name="_sql" value="select * from ..."/>

        </nform>

另一种是通过多项查询将条件传到后台.

    在后台通用DispatchAction类有个方法find(),可以得到查询结果,你不别写代码。

"利用通用动态formBean类,实现多项查询不一定能满足需求"这是不对的,可以说newxy实现多项查询可满足绝大部分要求.对可参看到范例的多项查询,也可看主页的左上角《3.DAO+通用持久类+通用动态formBean+通用DispatchAction类》。

 

问:使用newxy,是不是页面的form中的项目必须和数据表的字段一一对应,而不能缺少?

答:form表单中可以加入任意属性,提交后这些属性会保存在formbean中不会出错,但只有与表字段同名的属性会保存到数据库。

 

问:关于主键的问题, 我不是很明确

     1. 这里的主键名是指定的吗,就是id吗,还是根据自已的情况随意指定名称

     2. 联合主键我怎么指定。

:主键名可以是任意的,newxy可以自动为主键增值,但如果是联合主键,需要开发者写代码赋值.

 

【上篇】
【下篇】

抱歉!评论已关闭.