struts2层与前端页面的连接
目标
前面已经实现在页面中点击触发 action 中的事件,也实现了将页面对象 vo 传入到数据库中,但是如果有很多按钮那么怎么实现 struts2 层与整个前端 Jsp 页面的连接呢?
【方案】:这里其实很简单,只需要将所有新增的前端页面与Action和struts2.xml文件配置一下就行。
【例如】:我们在页面增加一个新增按钮,我们希望,新增-按钮能够实现跳转到一个新的页面,新的页面里面能够进行表单数据的填写,填写完成后能够有保存按钮,将数据保存到数据库中。
按钮:
跳转页面:
现在我们来实现这个功能:首先在前端jsp页面中找到-新增-这个按钮的代码,
<button type='button' class='button' onMouseOver="this.className='button_over';" onMouseOut="this.className='button';"
onClick="forward('${pageContext.request.contextPath}/sys/add.jsp')">
<img src="${pageContext.request.contextPath}/ui/images/button/xinjian.png" border='0' align='absmiddle'> 新建</button>
这里要将其出发的点击事件改为触发 Action 事件:
onClick="forward('${pageContext.request.contextPath}/sys/sysUserGroupAction_add.do')">
这样点击事件就可以触发 sysUserGroupAction.java 中的 add 方法,为什么呢?
这是因为我们在struts2.xml中对此 Action 进行了配置:
<action name="sysUserGroupAction_*"
这里所有下划线“_”后面接的都将是 Action.java 中的方法,所以新增add方法:
public String add(){
return "add";
}
这样就能够触发这个add方法,然后在Action中进行相应的页面的配置:
<result name="add">/sys/group/add.jsp</result>
这样就在处理完后转到add.jsp页面了,这个页面就是我们所需要的表单页面了。
然后点击保存,就可以利用相同的方式。
思路:
1、找到前端页面按钮的触发事件,改成xxAction_xx do这样的形式
2、再在Action中添加xx这个方法如:save(),返回一个字符串,对应到struts2.xml中的页面
已上便是struts2层和前端的结合,后面所有的前端增加的方法和按钮都需要先经过struts2这层才能调用业务层的代码。