用javascript控制
<script type="text/javascript">
function setEvent(event)
{
document.forms[0].action = event;
document.forms[0].submit();
}在你的button那里 加入onclick="javascript:setEvent('delete.do')"
<script type="text/javascript">
function setEvent(event)
{
document.forms[0].action = event;
document.forms[0].submit();
}在你的button那里 加入onclick="javascript:setEvent('delete.do')"
function f()
{
var s=document.buttonName.value;
if(s.equals("xxxx"))
....
}
</script>
就是建个一分发的action,进行分发。
判断是哪一个button。如果是这样,
可以给button设个值,然后,判断
这个值就可以了。比如:
<html:button property="delButton" value="Delete"/>
<html:button property="updButton" value="Update"/>if ( form.getDelButton() != null && form.getDelButton().equals("") ) {
// Delete button pressed
}
else if ( form.getUpdButton() != null && form.getUpdButton().equals("") ) {
// Update button pressed
}
// Delete button pressed
}
else if ( form.getUpdButton() != null && !form.getUpdButton().equals("") ) {
// Update button pressed
}
<bean:message key="title.action.delete"/>
</html:submit>
<html:submit>
<bean:message key="title.action.update"/>
</html:submit>
我在那里写onclik()呢?
还有我的javascript code是写在我的jsp?
你的方法能够保证两个按钮都提交,但我怎么知道是点击了哪个按钮提交的啊?
再判断是1.delete 还是非 2.update
<html:submit value='更新'></html:submit></form ><html:form method='post' action='/lykAction.do?action=reset'><html:submit value='取消'></html:submit>
</html:form >
其中用action=事件类型。
<%@ page contentType="text/html;charset=GB2312" language="java" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %><html:html>
<head>
<title></title>
<html:base/>
</head>
<body bgcolor="white">
<table cellPadding=2 width="80%" border=2>
<tr>
<td><span CONTENTEDITABLE=true>姓名</span></td>
<td><span CONTENTEDITABLE=true>性别</span></td>
<td><span CONTENTEDITABLE=true>年龄</span></td>
<td><span CONTENTEDITABLE=true>删除</span></td>
<td><span CONTENTEDITABLE=true>编辑</span></td>
<td><span CONTENTEDITABLE=true>链接</span></td></tr>
<logic:iterate name='lyk' id='lyk' type='emptyprj.lyk' scope='request'>
<logic:notEqual name='lykForm' property='action' value='edit'>
<tr>
<td><bean:write name='lyk' property='姓名' /></td>
<td><bean:write name='lyk' property='性别' /></td>
<td><bean:write name='lyk' property='年龄' /></td>
<td><a href="lykAction.do?action=delete&expression=<bean:write name='lyk' property='姓名' />">删除</a></td>
<td><a href="lykAction.do?action=edit&expression=<bean:write name='lyk' property='姓名' />">编辑</a></td>
<td><a href="lykAction.do?action=link&expression=<bean:write name='lyk' property='姓名' />">链接</a></td></tr>
</logic:notEqual>
<logic:equal name='lykForm' property='action' value='edit'>
<tr>
<form method='post' name='lykForm' action="/lyk/lykAction.do?action=update&expression=<bean:write name='lyk' property='姓名' />">
<td><html:text name='lyk' property='姓名' /></td>
<td><html:text name='lyk' property='性别' /></td>
<td><html:text name='lyk' property='年龄' /></td>
<td><a href="lykAction.do?action=delete&expression=<bean:write name='lyk' property='姓名' />">删除</a></td>
<td><html:submit value='更新'></html:submit></form ><html:form method='post' action='/lykAction.do?action=reset'><html:submit value='取消'></html:submit>
</html:form ></td>
<td><a href="lykAction.do?action=link&expression=<bean:write name='lyk' property='姓名' />">链接</a></td></tr>
</logic:equal>
</logic:iterate><tr><td align=middle colSpan=7 ><bean:write property='pagestr' name='lykForm' filter='false' /></td></tr></tr>
</table>
</body>
</html:html>
package emptyprj;import emptyprj.jdbc.util.ConnectionPool;
import emptyprj.lykDAO;import java.lang.reflect.InvocationTargetException;
import java.util.Locale;
import javax.servlet.ServletException;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.util.ModuleException;
import org.apache.struts.util.MessageResources;import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Collection;public final class lykAction extends Action
{
// 变量定义:
private Log log = LogFactory.getLog("org.apache.struts.webapp.Example"); private ConnectionPool pool; public lykAction() {
pool = ConnectionPool.getInstance();
}
//函数定义:
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception
{
// Extract attributes and parameters we will need
Locale locale = getLocale(request);
MessageResources messages = getResources(request);
HttpSession session = request.getSession();
lykForm m_lykForm = (lykForm) form;
Connection con = null; try
{
con = pool.getConnection();
lykDAO m_lykDAO = new lykDAO(con); String action=request.getParameter("action");
if(action==null)action="find";
if(action.equals("delete"))
{
String expression=request.getParameter("expression");
m_lykDAO.removeID(expression);
}
////////////
if(action.equals("update"))
{
String expression=request.getParameter("expression");
lyk m_lyk= new lyk();
//<update>
m_lyk.set姓名(m_lykForm.get姓名());
m_lyk.set性别(m_lykForm.get性别());
m_lyk.set年龄(m_lykForm.get年龄());
//</update>
m_lykDAO.update(m_lyk,expression);
}
///////////////
//<sqlstr>
String sql="SELECT * FROM dbo.TABLE1";
//</sqlstr> //<分页>
m_lykDAO.setLength(3);//设置每页显示记录数
int ipage;//当前页
try
{
String page=request.getParameter("page");//分页参数,读取请求的当前页
ipage=java.lang.Integer.parseInt(page,10);
}
catch (Exception e)
{
ipage=m_lykForm.getPage();
}
if(ipage<1)ipage=1;
Collection col = m_lykDAO.findSQL(sql,ipage);//通过DAO对象查询数据
request.setAttribute("lyk",col); //保存数据
String pagestr=m_lykDAO.getPagestr(ipage);//分页字符串,分页内容
m_lykForm.setPagestr(pagestr);
m_lykForm.setAction(action);
request.setAttribute("lykForm",m_lykForm);
//</分页>
return mapping.findForward("success");
}
catch (SQLException e)
{
e.printStackTrace();
throw new RuntimeException("Unable to get connection.");
}
finally
{
try
{
if (con != null)
con.close();
}
catch (SQLException e)
{
throw new RuntimeException(e.getMessage());
}
} }}
为什么好多人都喜欢把不同的操作放到一个action中呢?
就算放到一个action中,起码也得用分发机制吧。
这样可以保证结构清晰,代码也易于维护。
它包括了add(),updata(),delete()等一些需要的重复的方法