我的程序如下:
jsp1.jsp
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ page contentType="text/html; charset=GBK" %>
<html:html>
<head>
<title>
user_Detail
</title>
</head>
<body>
<h1>JBuilder Generated Struts JSP for ActionForm finalstruts.UserForm</h1>
<p>
<html:form action="/userAction.do" method="POST">
<html:submit property="submit" value="Submit"/><br>
<html:reset value ="Reset"/>
</html:form>
</body>
</html:html>
UserAction.java
package finalstruts;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
import finalstruts.UserForm;
public class UserAction extends Action {
public ActionForward perform(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
/**@todo: complete the business logic here, this is just a skeleton.*/
UserForm form=(UserForm)actionForm;
Connection my_Con=null;
String strSql="select user_id,password,name,description,web_site,address from M_User";
try
{
my_Con=getConnection();
PreparedStatement ps=my_Con.prepareStatement(strSql);
ResultSet M_rs=ps.executeQuery();
java.util.ArrayList vUser=new java.util.ArrayList();
while(M_rs.next())
{
UserVO my_VO=new UserVO();
my_VO.setUser_id(M_rs.getInt("user_id"));
my_VO.setPassword(M_rs.getString("password"));
my_VO.setName(M_rs.getString("name"));
my_VO.setDescription(M_rs.getString("description"));
my_VO.setWeb_site(M_rs.getString("web_site"));;
my_VO.setAddress(M_rs.getString("address"));
vUser.add(my_VO);
}
form.setVUser(vUser);
httpServletRequest.setAttribute("v",vUser);
return actionMapping.findForward("success");
}
catch(Exception e)
{
e.printStackTrace();
return actionMapping.findForward("failed");
}
}
private java.sql.Connection getConnection()throws SQLException
{
try
{
try
{
Class.forName("weblogic.jdbc.mssqlserver4.Driver");
}
catch(ClassNotFoundException e)
{
e.printStackTrace();
}
return DriverManager.getConnection("jdbc:weblogic:mssqlserver4:roger@127.0.0.1:1433","sa","");
}
catch(Exception e)
{
e.printStackTrace();
throw new SQLException(e.toString());
}
}
}
UserForm.java
package finalstruts;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import java.util.*;
public class UserForm extends ActionForm {
private String address;
private String description;
private String name;
private String password;
private int user_id;
private String web_site;
private java.util.ArrayList vUser;
private String action;
public void setAddress(String address) {
this.address = address;
}
public String getAddress() {
return address;
}
public void setDescription(String description) {
this.description = description;
}
public String getDescription() {
return description;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword() {
return password;
}
public void setUser_id(int user_id) {
this.user_id = user_id;
}
public int getUser_id() {
return user_id;
}
public void setWeb_site(String web_site) {
this.web_site = web_site;
}
public String getWeb_site() {
return web_site;
}
public ActionErrors validate(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {
/**@todo: finish this method, this is just the skeleton.*/
return null;
}
public void reset(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {
}
public java.util.ArrayList getVUser() {
return vUser;
}
public void setVUser(java.util.ArrayList vUser) {
this.vUser = vUser;
}
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
}
detail.jsp
<%@ page contentType="text/html; charset=GBK" %>
<%@ 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>detail</title></head><body bgcolor="#ffffff">
<table cellPadding=2 width="80%" border=2>
<tr>
<td><span CONTENTEDITABLE=true>user_id</span></td>
<td><span CONTENTEDITABLE=true>password</span></td>
<td><span CONTENTEDITABLE=true>name</span></td>
<td><span CONTENTEDITABLE=true>description</span></td>
<td><span CONTENTEDITABLE=true>web_site</span></td>
<td><span CONTENTEDITABLE=true>address</span></td>
<td><span CONTENTEDITABLE=true>删除</span></td>
<td><span CONTENTEDITABLE=true>编辑</span></td>
<td><span CONTENTEDITABLE=true>链接</span></td>
</tr>
<logic:iterate id="UserVO" name="v" type="finalstruts.UserVO">
<tr>
<td><bean:write name=UserVO property=user_id /></td>
<td><bean:write name=UserVO property=password /></td>
<td><bean:write name=UserVO property=name /></td>
<td><bean:write name=UserVO property=description /></td>
<td><bean:write name=UserVO property=web_site /></td>
<td><bean:write name=UserVO property=address /></td>
<td><a href="#">删除</a></td>
<td><a href="#">编辑</a></td>
<td><a href="#">链接</a></td>
</tr>
</logic:iterate>
</table></body></html:html>
strut-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">
<struts-config>
<form-beans>
<form-bean name="userForm" type="finalstruts.UserForm" />
</form-beans>
<action-mappings>
<action name="userForm" type="finalstruts.UserAction" scope="request" path="/userAction">
<forward name="success" path="/detail.jsp" />
<forward name="failed" path="/index.jsp" />
</action>
</action-mappings>
</struts-config>
现在上边的程序运行是没问题,能在detail.jsp中显示信息
但如果在action里不用httpServletRequest.setAttribute("v",vUser)而显示formbean中的vUser;
detail.jsp中<logic:iterate>怎么写才能正确显示,初学struts,希望各位帮忙。
谢谢。
应该是:<logic:iterate id="v_user" property="vUser">才对
对,应该是:<logic:iterate id="v_user" property="vUser">
name 默认是你这个页面对应的formbean