BEA workshop 项目上手教程

本文转载自:http://wolfsky2002.blog.163.com/blog/static/10343152010662127155/

目标:查询数据库表userinfo,并用页面进行展示

一、底层代码

1. 创建web service项目,添加NetUI及structs支持

2. 创建用于展示数据的类。添加VO包(view objects)"com.xxzx.vo",添加POJO类(属性与等查数据库的表对应),用于存放显示的数据
命名:建议与表名一致,本例命名为 UserInfo.java,代码如下:

public class UserInfo {
private String id;
private String name;
private String addr;
private String age; }
 
为该类添加setter和getter,在源代码区域右击鼠标,选择“源代码/生成getter和setter”,然后会自动为每一个属性生成相应的get*,set*函数

3. 建立与数据库中表的关系。添加db包(存放数据库相关类)"com.xxzx.db",,右击,添加JDBC控件,命名UserInfoDB,然后选择数据源。注意:这里需要首先配置好服务器,参考《全方们体验workshop10.1 - 1》一文,在服务器上配置数据库。这一步,需要启动服务器,需要等待一段时间。

在生成的UserInfoDB.java类中,添加如下查询语句:

@JdbcControl.SQL(statement="{sql: sqlStatement}")
UserInfo[] getAll(String sqlStatement) throws SQLException;

@
JdbcControl.SQL(statement="{sql: sqlStatement}")
UserInfo getUserById(String sqlStatement) throws SQLException;

4. 添加业务逻辑。添加BO包(bussiness objects)"com.xxzx.bo",右击添加:自定义控件QueryBO。

(1)在QueryBO.java中添加如下接口:

    public UserInfo[] getAllRecord()throws Exception;
    public UserInfo[] getUserById()throws Exception;

(2)在*Impl.java中添加对接口的实现,:

首先在项目管理界面,右击*Impl.java,“插入/控件...”,选择数据库控件,即UserInfoDB

public class QueryBOImpl implements QueryBO, Serializable {
    private static final long serialVersionUID = 1L;

    @Control
    private UserInfoDB userDB; // 注意,这里UserInfoDB 是接口,不是类,是通过添加控件实现的
    public UserInfo[] getAllRecord() throws Exception{
        // TODO Auto-generated method stub
        String sql="select * from userinfo";
        return userDB.getAll(sql);
   }
    public UserInfo getUserById(String id) throws Exception{
        // TODO Auto-generated method stub
        String sql="select * from userinfo where id = " + id;
        return userDB.getUserById(sql);       
    }
}

至此,底层代码全部写完,实现了两种查询,下面将数据进行显示,建立页面流。

二、界面相关

1. 在vo包上右击:新建页面流,命名同工程名,如MyDemo,自动生成MyDemoController.java。

2. 进入页面流视图,添加一个展示结果的jsp页面,如MyDemoQueryUser.jsp,遵循一定的命名规则

3. 页面流视图,右击“表单bean”,选择“新建内部类表单Bean”,会在MyDemoController.java中添加一个新的嵌套类,代码如下:

    @Jpf.FormBean
    public static class NewFormBean implements java.io.Serializable {
        private static final long serialVersionUID = 1L;
    }

根据需要在表单中展示的数据要求,添加相应的成员变量及相应的setter、getter,方法同POJO类的操作,显示所有人信息的代码如下:

        private UserInfo[] users = new UserInfo[]{};
        public UserInfo[] getUsers() {
            return users;
        }
        public void setUsers(UserInfo[] users) {
            this.users = users;
        }

4. 页面流视图,右击“引用的控件”,将前面编写的“QueryBO ”控件添加进来,在MyDemoController.java代码中体现为如下语句:

    private QueryBO queryBO;

5. 添加新action,右击“操作”,选择“新建操作...”,各选项参考如下:

操作模板:    基本的方法操作
操作名:      getAllRecord    (可自行修改)
表单Bean:     选择刚才新建的Form表单
转发至:      选择刚刚新建的JSP文件,如MyDemoQueryUser.jsp

至此,总结一下:从JSP进入action后,应当从数据库读取数据,保存到QueryBOImpl对象的数组里,要将其显示,还需要将其存入到FormBean中,这一步应当就在处理action的函数中处理,添加如下蓝色代码:

    @Jpf.Action(forwards = { @Jpf.Forward(name = "success", path = "MyDemoQueryUser.jsp") })
    public Forward getAllRecord(
            com.xxzx.vo.MyDemo5.MyDemo5Controller.NewFormBean form) {
        Forward forward = new Forward("success");
        try {
            form.setUsers(queryBO.getAllRecord());  // 其实就这一行是核心,try.. catch异常处理可以用快捷键ctrl+1自动生成
        } catch (Exception e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        return forward;
    }

6. 最后一步,在JSP页面上添加NewUI控件form,将其拖到jsp源码中的</netui:body>之前,也可以是其它需要的地方,会显示如下对话框,选择刚才建立的action,在后续步骤中根据需要选择,完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值