SOC风险管理网络安全监控平台安全分析系统 第9页

 

基于struts框架安全运维平台风险管理模块的实现

{

     var obj=new ParamObj();

     obj.b_id=bid;

     PRRequestProxy('manage','getTreeInfo',obj);

}

上述函数中的PRRequestProxy('manage','getTreeInfo',obj)语句调用的是ManageAction类中的getTreeInfo()方法。

该方法的大致代码如下:

String bid = PRUtil.getParameter(request, "b_id");

 ManageBL bl = new ManageBL();

JSONObject obj =bl.getTreeNodeInfo(bid);

 JsObj js = new JsObj();

js.setCallBackFunction("setManageValue");

 js.addCallBackFunParam(obj);

 return PRUtil.responseProxy(response,js);

其中PRUtil.getParameter(request, "b_id")是获得被点击的节点的b_id; bl.getTreeNodeInfo(bid)是从BL对象中得到那个节点的信息,该节点的信息被封装在JSONObject对象中。然后,利用JSObj的方法指定回调函数和回调参数,最后由PRUtilresponseProxy(response,js)方法将请求传回到刚才发出请求的页面menuTree中,由该页面的setManageValue方法接收传过来的节点信息组成的对象。

然后,将该对象传给manage页面,方法如下:

function setManageValue(jsonObj)

{   ……

parent.manageFrame.changeValue(jsonObj)

……

}

manage页面中的changeValue(isonObj)中对表格中的文本域进行赋值。如下所示:

function changeValue(jsonObj)

{ ……

  var temp=document.all;

  temp.BID.value=jsonObj.b_id;

  ……

}

ManageAction类中,传回menuTree页面的JSONObject对象是由BL中的getTreeNodeInfo函数返回的,而该函数中的代码是:

public JSONObject getTreeNodeInfo(String bid) throws SQLException, JSONException

{

ManageDAO dao = new ManageDAO();

TreeVO vo = dao.getTreeNodeInfo(bid);

JSONObject obj = new JSONObject();

obj.put("b_id", vo.getBid());

……

return obj;

}

显然,该方法返回的JSONObject对象的信息来自ManageDAO类的对象,由该对象调用它的getTreeNodeInfo(String)得到。ManageDAO类中的getTreeNodeInfo(String )方法如下:

public TreeVO getTreeNodeInfo(String bid) throws SQLException

{

String sql = "SELECT * FROM business WHERE bid=?";

Dataset ds = executeQuery(sql, bid);

TreeVO vo = new TreeVO();

if ((ds != null) && (ds.getRowCount() != 0))

{

ds.next();

vo.setBid(ds.getInt("bid"));

vo.setBName(ds.getString("b_name"));

……

}

return vo;

}

至此,该查询操作结束。由于使用了局部刷新技术,当用户点击左侧的树时,右边页面和树域没有进行刷新,但速度好像很快,用户甚至感觉不到页面有所晃动。

6.2  修改节点

本系统中实现的修改方法与查看信息类似,它们对后台数据库的操作都是调用的同一个方法。设计者在页面的修改方法里直接调用了查看方法,从而调用后台函数。修改方法的基本思路是:要修改选中节点的信息首先要知道该节点的信息,然后才能对其进行修改。然后再将控制客户端请求服务器响应的<hidden>控件的值改为“update”即可执行调用相应修改操作了。所以总的来说,修改方法是建立在查看信息的基础之上的,该方法的页面代码为:

function update(id,parameters)

      {

            parent.manageFrame.executeAdd(id);

            clickNode(id);

            parent.manageFrame.changeHiddenValue("update");

            parent.manageFrame.document.all.reWrite.disabled="";

            parent.manageFrame.document.all.ok1.disabled="";

            parent.manageFrame.document.all.BID.disabled="disabled";

      }

其中的clickNode(id);方法即是本系统中的查看信息方法的调用。

6.3  添加节点

完成添加的流程为:

1)        用户选中右键菜单的添加选项,触发js函数:

function add(id,parameters)

{

parent.manageFrame.clean();    //把右侧表单清空;

parent.manageFrame.executeAdd(id);  //把被选中节点的id记为新节点的父id

parent.manageFrame.changeHiddenValue('add'); /*改变用来控制将要调用action中的哪一个方法的hidden变量的值。*/

parent.manageFrame.document.all.reWrite.disabled="";

parent.manageFrame.document.all.ok1.disabled="";/*这两句是恢复确定和取消两按钮的状态为可操作状态。*/

}

2)        然后,在右边表单填完数据并提交时调用doUpdate方法,如下:

function doUpdateid

{

var temp=document.all;

var obj=new ParamObj();

obj.b_id=temp.BID.value;

……//其它数据与上边类似

if((document.all.controllButton.value =='add'))

{

PRRequestProxy('manage','addTreeNode',obj); /*语句调用manageActionaddTreeNode方法,并传参数obj*/

}

} PRRequestProxy('manage','addTreeNode',obj)

PRRequestProxy('manage','addTreeNode',obj)语句中程序调用的是ManageAction类中的addTreeNode()方法其部分代码为:

{

……

TreeVO vo = setVO(mapping, actionform, request, response);

ManageBL bl = new ManageBL();

JSONObject json=new JSONObject();

json=bl.getTreeNodeInfo(""+vo.getPBid());

//在二级节点下添加树节点。

if(json.getInt("pbid")==1)

{

   vo.setRootBid(vo.getPBid());

}

//在根节点下添加节点,即在中国人民银行总节点下添加。

if(json.getInt("pbid")==0)

{

   vo.setRootBid(vo.getBid());

}

else

{

  //在其他级别节点下添加。

   vo.setRootBid(json.getInt("root_bid"));

}

JsObj js = new JsObj();

js.setCallBackFunction("freshTree");//用于设置回调函数然后将结果显示出来。

if(bl.addTreeNode(vo)==1)  //调用ManageBL中的方法执行添加操作。

{  //如果所添加的信息符合要求则返回成功字串

js.addCallBackFunParam("OK,添加成功");

}

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

  • 上一篇文章:
  • 下一篇文章:
  • Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有