严重: Could not create and/or set value back on to object
org.action.Mainaction.user - Class: ognl.OgnlRuntime
File: OgnlRuntime.java
org.action.Mainaction.user - Class: ognl.OgnlRuntime
File: OgnlRuntime.java
Method: setFieldValue
原因是:
private UserTable user;
改为
private UserTable user=new UserTable();
package org.action;
import java.sql.*;
import java.util.*;
import org.work.*;
import org.model.*;
import com.opensymphony.xwork2.*;
public class Mainaction extends ActionSupport {
private UserTable user=new UserTable();
public String execute() throws Exception {
String usr = user.getUsername();
String pwd = user.getPassword();
boolean validated = false;
SqlSrvDBConn sqlsrv = new SqlSrvDBConn();
ActionContext context = ActionContext.getContext();
Map session = context.getSession();
UserTable user1 = null;
user1 = (UserTable) session.get("user");
if (user1 == null) {
String sql = "select * from tablename1";
ResultSet rs = sqlsrv.executeQuery(sql);
try {
// 循环,依次放入。
while (rs.next()) {
if (rs.getString("name").compareTo(usr) == 0
&& rs.getString("password").compareTo(pwd) == 0) {
user1 = new UserTable();
// 将数据库的第一列即id放入user中???
user1.setId(rs.getInt(1));
// 将数据库中的第二列即name放入user中
user1.setUsername(rs.getString(2));
// 将数据库中的第三列即password放入user中
user1.setPassword(rs.getString(3));
// 把user的值存入名为“user”的标签中,存入的是否为整列数据??
session.put("user", user1);
System.out.println("done.");
validated = true;
}
}
rs.close();
} catch (SQLException e) {
e.printStackTrace();
// TODO: handle exception
}
sqlsrv.Closestmt();
} else {
validated = true;
}
if (validated) {
ArrayList al = new ArrayList();
try {
// 数据库静态执行语句从lyTable中选择
String sql = "select * from lyTable";
// 把数据库中lyTable的值存入rd
ResultSet rs = sqlsrv.executeQuery(sql);
while (rs.next()) {
// 实例化javabean
lyTable ly = new lyTable();
// 分别把id,userid,date,title和content存入ly中
ly.setId(rs.getInt(1));
ly.setUserId(rs.getInt(2));
ly.setDate(rs.getDate(3));
ly.setTitle(rs.getString(4));
ly.setContent(rs.getString(5));
al.add(ly);// 把ly里的值加到al中
}
rs.close();
} catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
sqlsrv.Closestmt();
// 创建名为“al”的标签来存放al值
session.put("al", al);
// 跳转到main.jsp页面
return "success";
} else {
// 跳转到error.jsp页面
return "error";
}
}
public UserTable getUser(){
return user;
}
public void SetUser(UserTable user){
this.user=user;
}
}