if (isCancelled(request)) { return mapping.findForward("home"); } ArrayList list = new ArrayList(); try{ Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection(url,user,password); stmt = conn.createStatement(); rs=stmt.executeQuery("select * from test"); ArrayList list11 = new ArrayList(); while(rs.next()){ SimpleActionForm a=new SimpleActionForm(); a.setIsbn(rs.getString(1)); list.add(a);
} rs.close();
request.setAttribute("list",list); }catch(Exception e){ System.out.print("Exception:"+e.getMessage()); } return mapping.findForward("success"); }message description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: No getter method for property list of bean simpleForm请各位指点:
No getter method for property list of bean simpleForm ========================== 楼主,应该是jsp没写对阿。你的list里面的是SimpleActionForm object阿,而isbn是他的属性。 如下写肯定没问题 <logic:iterate id="simpleActionForm" name="list" > <bean:write name="simpleActionForm" property="isbn" /> </logic:iterate> 记得给分哦!!
<bean:write name="aItem" property="isbn" />
</logic:iterate>
试试吧。
<bean:write name="aItem" property="isbn" />
</logic:iterate>
试试吧。错误信息是:
Cannot find bean list in any scope
struts examples沒有這樣的例子,是我自己改的.
我把ACTION中的代碼寫在JSP頁中是可以的.
页面的标签<logic:iterate id="aItem" name="你的form" property="alist" >
<bean:write name="aItem" property="你的属性" />
</logic:iterate>
name必须指定的是一个form。上面的错误提示很明显Cannot find bean list in any scope
你的list不是一个form。当然是Cannot find。
HttpSession session=null; session.setAttribute("list",list);不报nullpointexception才怪。
晕。
====================================
楼主这里是不是省略了东西啊?session是null怎么能成功呢?
可以用request.setAttribute或者直接request.setAttribute都行。请问都上的:
name必须指定的是一个form
=====================
这是什么意思?必须是一个form?不是把,是一个collection阿还有一点:
collection中的对象必须有针对属性的getter方法,否则是不能显示的
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import java.util.ArrayList;public class SimpleActionForm extends ActionForm{
private String isbn=null;
public ArrayList list = new ArrayList();
// list = null;
public ArrayList
public void reset(ActionMapping mapping,HttpServletRequest request){
this.isbn=null;
}
public String getIsbn(){
return isbn;
}
public void setIsbn(String isbn){
this.isbn=isbn;
}
}处理ACTION文件如下:ProcessBookAction.java
package test;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;import java.sql.*;
import java.util.ArrayList;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class ProcessBookAction extends Action {
public ProcessBookAction() {
super();
}
String url= "jdbc:oracle:thin:@(DESCRIPTION=" +"(ADDRESS_LIST=" +"(ADDRESS=(PROTOCOL=TCP)" + "(HOST=192.168.0.250)" +"(PORT=1521)" + ")" +")"+"(CONNECT_DATA=" +"(SERVICE_NAME=swdb)" + ")" +")";
String user = "ap01";
String password = "qweasd";
Statement stmt=null;
Connection conn=null;
ResultSet rs=null;
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
if (isCancelled(request)) {
return mapping.findForward("home");
}
ArrayList list = new ArrayList();
try{ Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url,user,password);
stmt = conn.createStatement();
rs=stmt.executeQuery("select * from test");
ArrayList list11 = new ArrayList();
while(rs.next()){
SimpleActionForm a=new SimpleActionForm();
a.setIsbn(rs.getString(1));
list.add(a);
}
rs.close();
request.setAttribute("list",list);
}catch(Exception e){
System.out.print("Exception:"+e.getMessage());
}
return mapping.findForward("success");
}message description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: No getter method for property list of bean simpleForm请各位指点:
==========================
楼主,应该是jsp没写对阿。你的list里面的是SimpleActionForm object阿,而isbn是他的属性。
如下写肯定没问题
<logic:iterate id="simpleActionForm" name="list" >
<bean:write name="simpleActionForm" property="isbn" />
</logic:iterate> 记得给分哦!!
<bean:write name="aa" />
</logic:iterate> 如果不懂,再问。。
session.setAttribute("list",list);
\\\\\\\\\
HttpSession session = request.getSessin();
最要感謝的是benjamin_von(雨过天晴) 朋友。我用本來要不要做這個例子的,
剛做成功了一個另外一個,用struts-examples的例子。
回頭看到留言,又試著改了一下,
真的成功了。感激之至。