先写下今天的错误
struts2代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="user" namespace="" extends="struts-default">
<action name="updateOrt" class="UserAction" method="updateOrt">
<result name="success">\html\xiugaiyemian.jsp</result>
</action>
<action name="updateUser" class="UserAction" method="updateUser">
<result name="success">/html/user_update.html</result>
</action>
</package>
</struts>
Action代码:
public class UserAction extends ActionSupport{
IService iService;
User user22;
List<User> list;
public void setiService(IService iService) {
this.iService = iService;
}
public User getUser() {
return user22;
}
public void setUser(User user) {
this.user22 = user;
}
//修改用户
public String updateUser(){
user22.getId();
iService.updateUser(user22);
return "success";
}
public String updateOrt(){
System.out.println("---------------"+user22.getId());
// user22.getId();
// iService.update(user22);
return "success";
}
jsp代码:注意错误在这里
-
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <%@taglib uri="/struts-tags" prefix="s"%> <!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=utf-8"> <title>Insert title here</title> </head> <body> <h1>查询成功</h1> <s:iterator var="userList" value="list" status="status"> ID:<s:property value="#userList.id"/> Name:<s:property value="#userList.username"/> <s:a href="updateOrt?id=%{#userList.id}">修改</s:a> <s:a href="deleteUser?id=%{#userList.id}">删除</s:a><br/> </s:iterator> <s:debug></s:debug> </body> </html>
-
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <%@taglib uri="/struts-tags" prefix="s"%> <!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=utf-8"> <title>Insert title here</title> </head> <body> <form action="updateUser" method="post"> <s:property value="user22.username"/> <s:property value="user22.id"/> <input type="text" name="username"> <input type="submit" value="修改"> </form> </body> <s:debug></s:debug> </html>
-
<!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=utf-8"> <title>Insert title here</title> </head> <body> <h1>修改成功</h1> </body> </html>
今天出来的错误,前台往后台传值,怎么都传不过去。后来发现是:
<s:a href="updateOrt?id=%{#userList.id}">修改</s:a>
这里写的是id,后端就要定义String id,并且进行强转,很是麻烦。
第二种方法就是改成
<s:a href="updateOrt?user.id=%{#userList.id}">修改</s:a>
这样就能拿到前台传的user的id
第三种方法就是实现ModelDriven<User>接口,代码如下
public class UserAction extends ActionSupport implements ModelDriven<User>{
IService iService;
User user22;
List<User> list;
public void setiService(IService iService) {
this.iService = iService;
}
public User getUser() {
return user22;
}
public void setUser(User user) {
this.user22 = user;
}
@Override
public User getModel() {
// TODO Auto-generated method stub
return user22;
}
public String updateOrt(){
System.out.println("---------------"+user22.getId());
// user22.getId();
// iService.update(user22);
return "success";
}
//修改用户
public String updateUser(){
user22.getId();
iService.updateUser(user22);
return "success";
}
}
注意:
<form action="test/user.action" method="post">
<input type="hidden" name="method:add">
username:<input type="text" name="username"> <br/>
password:<input type="text" name="password"> <br/>
age:<input type="text" name="age"> <br/>
<input type="submit" name="submit" value="添加用户">
</form> <br/>
不用user.XX