Jsp代码
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ taglib uri="/webwork" prefix="ww" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<script language="javascript">
function modify()
{
userDetailForm.action="UserModifyAction!search.action";
userDetailForm.submit();
}function del()
{
userDetailForm.action="UserDelete.action";
userDetailForm.submit();
}
</script>
<body>
<form name="userDetailForm" method="post" action="">
<input type="hidden" name="userInfo.id" value="<ww:property value="userInfo.id"/>"/>
<input type="hidden" name="userInfo.name" value="<ww:property value="userInfo.name"/>"/>
<input type="hidden" name="userInfo.password" value="<ww:property value="userInfo.password"/>"/>
<input type="hidden" name="userInfo.email" value="<ww:property value="userInfo.email"/>"/>
<input type="hidden" name="userInfo.sex" value="<ww:property value="userInfo.sex"/>"/>
<input type="hidden" name="userInfo.age" value="<ww:property value="userInfo.age"/>"/>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr align="center">
<td colspan="2">用户详情</td>
</tr>
<tr>
<td>姓名</td>
<td><ww:property value="userInfo.name" /></td>
</tr>
<tr>
<td>性别</td>
<!--<td><ww:property id="userInfo.sex"/></td>-->
<td><ww:if test="userInfo.sex==0">男</ww:if>
<ww:else>女</ww:else></td>
</tr>
<tr>
<td>年龄</td>
<td><ww:property value="userInfo.age"/></td>
</tr>
<tr>
<td>email</td>
<td><ww:property value="userInfo.email"/></td>
</tr>
<tr>
<td align="right"><input type="submit" value="修改" onClick="modify()"></td>
<td><input type="submit" value="删除" onClick="del()"></td>
</tr>
</table>
</form>
</body>
</html>
后台Action:
package com.inspur.report.web.action;import java.util.List;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.inspur.report.bean.UserInfo;
import com.inspur.report.business.IUserService;
import com.opensymphony.webwork.interceptor.ServletRequestAware;
import com.opensymphony.webwork.interceptor.ServletResponseAware;
import com.opensymphony.xwork.Action;
import com.opensymphony.xwork.ActionSupport;
import com.opensymphony.xwork.ModelDriven;/**
* @author $author
*/
public class UserModifyAction extends ActionSupport implements Action,
ModelDriven{
private UserInfo userInfo = new UserInfo(); private IUserService userService; /**
* @see com.opensymphony.xwork.Action#execute()
*/
public String search(UserInfo inputUserInfo) {
Integer userId = inputUserInfo.getId();
if (userId == null) {
return Action.ERROR;
}
List userList = userService.getAllUser();
UserInfo retuser = null;
for (int i = 0; i < userList.size(); i++) {
retuser = (UserInfo) userList.get(i);
if (retuser.getId() == userId) {
break;
}
}
return Action.SUCCESS;
} public String save(UserInfo inputUserInfo) {
if (userService.saveUser(userInfo) == 0) {
return Action.ERROR;
}
return Action.SUCCESS;
} public String execute() throws Exception {
return Action.SUCCESS; } public Object getModel() {
// TODO Auto-generated method stub
return userInfo;
} public UserInfo getUserInfo() {
return userInfo;
} public void setUserInfo(UserInfo userInfo) {
this.userInfo = userInfo;
} public IUserService getUserService() {
return userService;
} public void setUserService(IUserService userService) {
this.userService = userService;
} }
控制台的错误是
java.lang.IllegalArgumentException: Neither search() nor it's doXxx() equivalent is defined in action class com.inspur.report.web.action.UserModifyAction
但是明明search() 方法在呀
解决方案 »
- proxool数据库连接池详细配置 问题
- java.lang.AbstractMethodError: org.postgresql.jdbc2.Jdbc2DatabaseMetaData.getJDB
- 面试问题
- axis生成的客户端调不通xfire发布的服务,有没有人遇到过?
- 对象集合读取后,占用内存的问题
- struts+spring集成的问题,请高手帮忙
- 如何添加系统的操作日志功能?
- 关于基本类型和包装类型
- 关于实体Bean连接mysql数据库的问题
- Oracle中Timestamp的使用?
- 在tomcat中成功发布webservice服务 怎么使用
- csv文件列名为中文,读取该列时报错,各位大牛帮忙看下
好像不应该有参数
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.1.1//EN" "http://www.opensymphony.com/xwork/xwork-1.1.1.dtd"><xwork>
<include file="webwork-default.xml">include</include>
<package name="user" extends="webwork-default">
<action name="UserDetail" class="com.inspur.report.web.action.UserDetailAction">
<interceptor-ref name="params" />
<result name="success" type="dispatcher">/UserDetail.jsp</result>
</action>
<action name="UserDelete" class="com.inspur.report.web.action.UserDeleteAction">
<interceptor-ref name="params" />
<result name="success" type="chain">userList</result>
</action>
<action name="userAddAction" class="com.inspur.report.web.action.UserAddAction" method="save">
<interceptor-ref name="model-driven" />
<interceptor-ref name="validationWorkflowStack" />
<result name="success" type="chain">userList</result>
<result name="error" type="dispatcher">/userAdd.jsp</result>
<result name="input" type="dispatcher">/userAdd.jsp</result>
</action>
<action name="userList" class="com.inspur.report.web.action.UserListAction">
<result name="success" type="dispatcher">/userlist.jsp</result>
</action>
<action name="UserLoginAction" class="com.inspur.report.web.action.UserLoginAction">
<result name="success" type="dispatcher">/welcome.jsp</result>
<result name="error" type="dispatcher">/login.jsp</result>
<result name="none" type="dispatcher">/login.jsp</result>
<interceptor-ref name="modelDrivenStack" />
</action>
<action name="UserModifyAction" class="com.inspur.report.web.action.UserModifyAction">
<interceptor-ref name="modelDrivenStack" />
<result name="modify">userModify.jsp</result>
<result name="success" type="dispatcher">UserDetail.jsp</result> </action>
</package>
</xwork>
参数??
改为:
public String search(){}我一般这样
userDetailForm.action="UserModifyAction!search";
在页面用个hidden,值为userInfo.userId
在modify方法中,用js取得userId
然后再传值到后台
思路ls已经写得很明确的。PS:月饼拿来。
{
new MoonCake("豆沙");
}