Action:package mytest;import org.apache.struts.action.*;
import javax.servlet.http.*;
import tablebook.*;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import java.util.Properties;
import java.math.BigDecimal;
import javax.naming.Context;
import java.util.Collection;
public class findbkauAction extends Action {
  public ActionForward perform(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
    /**@todo: complete the business logic here, this is just a skeleton.*/
    try{
    HttpSession session=httpServletRequest.getSession(false);
    Properties env = new Properties();
     env.put(Context.INITIAL_CONTEXT_FACTORY,
             "weblogic.jndi.WLInitialContextFactory");
     env.put(Context.PROVIDER_URL, "t3://127.0.0.1:7001");
     InitialContext ctx = new InitialContext(env);
      //查找远程接口。
     Object obj = ctx.lookup("tabbook");
     tablebook.tabbookHome home = (tablebook.tabbookHome)PortableRemoteObject.narrow(obj, tablebook.tabbookHome.class);
     tablebook.tabbook test = home.create();
     String author=((findbookActionForm)actionForm).getAuthor();
     author=toChinese(author);
     //按作者名查找。
     Collection coll=test.findByAuthor(author);
     //将按作者名查找出的一个集合对象传入到一个字符串引用里,供下一个jsp页面使用。
     session.setAttribute("coll",coll);
     //关闭连接。
     ctx.close();
     //转到显示页面。
     return actionMapping.findForward("bookshowcoll");    }
    catch(Exception e){
      throw new RuntimeException(e);
    }
    finally{
      return actionMapping.findForward("bookshowcoll");
    }
  }
  public  String toChinese(String str){
  try{
               if(str == null)
               {
                 return null;
               }
               else
               {
                 str = new String(str.getBytes("ISO-8859-1"),"GBK");
                 return str;
               }
    }
    catch(Exception ex){
       return null;
    }
   }}

解决方案 »

  1.   

    <logic:present name="response" property="arrLists" scope="request">
    <logic:iterate id="item"  name="response" property="arrLists" indexId="index" scope="request" TYPE="YourBean">
       <bean:write name="item"  property="list"  />
    </logic:iterate>
    </logic:present>
      

  2.   

    JSP:<%@ page contentType="text/html; charset=GBK" %>
    <%@ page import tablebook.* %>
    <html>
    <head>
    <title>
    bkshowpage
    </title>
    <table border="0" width="100%" height="100%" cellspacing="2" cellpadding="2">
      <tr>
    <%
        int j=1;
        int length=0;
        java.util.Collection col=(java.util.Collection)session.getAttribute("col");
        java.lang.Object []obj=col.toArray();
        java.lang.Integer ppp=(java.lang.Integer)obj[0];
        length=ppp.intValue();
        int pout=obj.length;
        Integer p=(java.lang.Integer)session.getAttribute("pages");
        int num=p.intValue();  %>
    </head>
    <table cellpadding=0 cellspacing=1 border=0 align=center>
    <tr><td height=20 width=3 bgcolor=FCEEB0></td><td width=4 bgcolor=FAE073></td><td width=5 bgcolor=fece00></td><td bgcolor=fece00 class=p3 width=250 align=center>:: 图 书 详 细 信 息  ::</td><td width=5 bgcolor=fece00></td><td width=4 bgcolor=FAE073></td><td width=3 bgcolor=FCEEB0></td></tr>
    </table>
    <br>
    <div align="center">
      <center>
     <table style="border-collapse:collapse" width="95%" border="1" bgcolor="6298E0" cellspacing="0" cellpadding="0"> <tr>
          <td width="113" height="17"><div align="center"><font size="2">图书编号</font></div></td>
          <td width="128"><div align="center"><font size="2">图书类型</font></div></td>
          <td width="78"><div align="center"><font size="2">图书名称</font></div></td>
          <td><div align="center"><font size="2">出版社</font></div></td>
          <td><div align="center"><font size="2">作者</font></div></td>
          <td><div align="center"><font size="2">价格</font></div></td>
          <td> <div align="center"><font size="2">语言</font></div></td>
           <td> <div align="center"><font size="2">出版日期</font></div></td>
           <td> <div align="center"><font size="2">操作</font></div></td>
        </tr>
     <%    while(j<pout){
    String bookid=((tablebook.bookinfo)obj[j]).getBookid();
    String booktype=((tablebook.bookinfo)obj[j]).getBooktype();
    String bookname=((tablebook.bookinfo)obj[j]).getBookname();
    String cbs=((tablebook.bookinfo)obj[j]).getPublishinghouse();
    String author=((tablebook.bookinfo)obj[j]).getAuthor();
    long price=((tablebook.bookinfo)obj[j]).getPrice();
    String language=((tablebook.bookinfo)obj[j]).getLanguage();
    java.sql.Date pubdate=((tablebook.bookinfo)obj[j]).getPublishdate();
      %>    <tr>
          <td height="22"><font size="2"><%=bookid%></font></td>
          <td><font size="2"><%=booktype%></font></td>
          <td><font size="2"><%=bookname%></font></td>
          <td><font size="2"><%=cbs%></font> </td>
          <td><font size="2"><%=author%></font> </td>
          <td><font size="2"><%=price%></font> </td>
          <td><font size="2"><%=language%></font> </td>
          <td><font size="2"><%=pubdate%></font> </td>
          <td><form method=POST action="deleteBook.jsp">
          <input type="image" name="Submit" value=" 删 除 "  src="images/sc1.gif"  style="cursor:hand;">
          <input type=hidden name=bookid value=<%=bookid%>></form></td>    </tr>
    <%
    j=j+1;
        }
    %>..............................
      

  3.   


    httpServletRequest.setAttribute("userlist",userList);
        <logic:iterate id="userBean" name="userlist">
      <tr>
        <td><bean:write name="userBean" property="name" /></td>
    </logic:iterate >
      

  4.   

    action中用STRUTS正规方法该怎么处理?一楼的方法好象太传统了,我要用STRUTS!
      

  5.   

    请高手帮我把Action 、FORMBEAN 、JSP都写出来,希望正规点,正在开发项目,谢谢!
    我只需要显示一个字段:name
      

  6.   

    struts只是一个架构,你完全可以灵活使用。
    看你的页面要什么样的数据了,你可以将数据从数据库中检索出来,放到一个ArrayList中,
    然后再jsp中用<logic:iterate>方法显示,就像楼上的几位说的那样。
      

  7.   

    返回JSP(部分代码,hehe)
    <%@ page contentType="text/html;charset=GB18030" %>
    <%@ page import="app.util.NumToString" %>
    <%@ taglib uri="/bean" prefix="bean" %>
    <%@ taglib uri="/html" prefix="html" %>
    <%@ taglib uri="/logic" prefix="logic" %>
    <%@ taglib uri="/template" prefix="template" %><title>查询成功</title>
    <br/>
    <html:errors/>
    <br/>
    <br/>
    <p align="center"><b><font size="+2统计表</font
    </b></p>
    <p align="left">填报机构:<bean:write name="XXXXForm" property="brno
    ame"/>&nbsp&nbsp;(截至&nbsp;<bean:write name="XXXXForm" property="year"/
    &nbsp;年&nbsp;<bean:write name="XXXXForm" property="month"/>&nbsp;月>
    )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp
    &nbsp;&nbsp;&nbsp;单位:万元 %</p>
    <table border="1" width="100%">
     <tr>
       <td rowspan="2" align="center">序号</td>
    <logic:iterate id="currentXXXX" name="XXXXist" type="app
    mis.entity.XXXX">
     <tr>
       <td align="center"><%= currentXXXX.getsequ() %></td>
    </logic:iterate>
    </table>ACTION
    package app.mis.actions;import app.mis.entity.XXXXForm;
    import app.mis.entity.XXXX;import app.mis.db.XXXXDAO;
    import app.mis.db.CreateException;
    import app.mis.db.FinderException;import app.util.ConnectionPool;
    import app.util.User;import app.mis.business.XXXXException;
    import app.mis.business.XXXXBO;import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionServlet;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.ServletException;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Collection;
    import javax.servlet.jsp.tagext.TagSupport;import java.sql.SQLException;
    import java.sql.Connection;import java.util.Iterator;
    import java.lang.*;
    import java.io.IOException;
    import java.util.List;public class XXXXSearchAction extends Action {
     public ActionForward perform(ActionMapping mapping,
                                  ActionForm form,
                                  HttpServletRequest request,
                                  HttpServletResponse response)
                                  throws IOException,ServletException {
       ActionErrors errors = new ActionErrors();
         XXXXForm xXXXForm = (XXXXForm)form;
    try {
             XXXXBO xXXXBo = new XXXXBO();         ArrayList xxxx = xxxxBo.findAllxxxx(
    xxxxForm.getbrno,
    xxxx.getdate());         request.setAttribute("xxxxList",xxxx);
                 } catch(Exception e) {}
    finally {
         }    return mapping.findForward("success");
     }}
    findall 函数中为具体处理逻辑和从数据库中取值的操作,用jdbc,结果通过参数传回来
      

  8.   

    请问楼上的,显示也要用formbean?
      

  9.   

    我到知道一点流程,用struts,国际化,没有一个中文,全是标签,没有<%%>。是用jb做的。可是我还不熟,不过我身边有牛人,幸福。等我研究会了再告诉你。不要学费的。
      

  10.   

    下面的内容我COPY了许多次,现在机会又来了。
    下面我给出一个logic:iterate 标签在数据库查询表格显示结果的实例,包含了分页、删除、编辑、更新、连接功能。所有代码由JSPStudio自动产生,JSPStudio下载地址ftp://162.105.80.43/incoming/包含分页、连接、删除、更新功能的软件表格文件lykOUT.jsp内容如下:
    --------------
    <%@ page contentType="text/html;charset=GB2312" language="java" %>
    <%@ 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" %><html:html>
    <head>
    <title></title>
    <html:base/>
    </head>
    <body bgcolor="white">
    <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>
    <bean:define property='offset' name='lykForm'  id='offset' />
    <bean:define property='length' name='lykForm'  id='length' />
    <logic:iterate name='lyk' id='lyk' type='OST.lyk' scope='request' offset='<%= String.valueOf(offset) %>' length='<%= String.valueOf(length) %>'>
    <logic:notEqual name='lykForm' property='action' value='edit'> 
    <tr>
    <td><bean:write name='lyk' property='user_id' /></td>
    <td><bean:write name='lyk' property='password' /></td>
    <td><bean:write name='lyk' property='name' /></td>
    <td><bean:write name='lyk' property='description' /></td>
    <td><bean:write name='lyk' property='web_site' /></td>
    <td><bean:write name='lyk' property='address' /></td>
    <td><a href="lykAction.do?action=delete&expression=<bean:write name='lyk' property='user_id' />">删除</a></td>
    <td><a href="lykAction.do?action=edit&expression=<bean:write name='lyk' property='user_id' />">编辑</a></td>
    <td><a href="lykAction.do?action=link&expression=<bean:write name='lyk' property='user_id' />">链接</a></td></tr>
    </logic:notEqual> 
    <logic:equal name='lykForm' property='action' value='edit'> 
    <tr>
    <form  method='post' name='lykForm' action="/OST/lykAction.do?action=update&expression=<bean:write name='lyk' property='user_id' />">
    <td><html:text name='lyk' property='user_id' /></td>
    <td><html:text name='lyk' property='password' /></td>
    <td><html:text name='lyk' property='name' /></td>
    <td><html:text name='lyk' property='description' /></td>
    <td><html:text name='lyk' property='web_site' /></td>
    <td><html:text name='lyk' property='address' /></td>
    <td><a href="lykAction.do?action=delete&expression=<bean:write name='lyk' property='user_id' />">删除</a></td>
    <td><html:submit value='更新'></html:submit></form ><html:form  method='post' action='/lykAction.do?action=reset'><html:submit value='取消'></html:submit>
    </html:form ></td>
    <td><a href="lykAction.do?action=link&expression=<bean:write name='lyk' property='user_id' />">链接</a></td></tr>
    </logic:equal> 
    </logic:iterate><tr><td  align=middle colSpan=10 ><bean:write property='mybeanvariable1' name='lykForm' filter='false' /></td></tr></tr>
    </table>
    </body>
    </html:html>
    --------------------------------------------------------------------------
    其中在“<logic:iterate name='lyk' id='lyk' type='OST.lyk' scope='request' offset='<%= String.valueOf(offset) %>' length='<%= String.valueOf(length) %>'>”中,offset代表本页开始显示的记录,length代码本页显示的记录条数。
    <logic:notEqual name='lykForm' property='action' value='edit'> 表示非常编辑时执行下面的代码。
    <logic:equal name='lykForm' property='action' value='edit'> 表示编辑时执行下面的代码。
    <a href="lykAction.do?action=link&expression=<bean:write name='lyk' property='user_id' />">是显示分页及相应连接的内容。
      

  11.   

    lykAction文件:用于实现分页、记录删除、编辑、更新、连接等功能
    -----------------------------------------------
    package  OST;import OST.jdbc.util.ConnectionPool;
    import OST.lykDAO;import java.lang.reflect.InvocationTargetException;
    import java.util.Locale;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpSession;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.commons.beanutils.PropertyUtils;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionServlet;
    import org.apache.struts.util.ModuleException;
    import org.apache.struts.util.MessageResources;import java.io.IOException;
    import java.sql.Connection;
    import java.sql.SQLException;
    import java.util.Collection;public final class lykAction extends Action 
    {
        // 变量定义:
        private Log log = LogFactory.getLog("org.apache.struts.webapp.Example");    private ConnectionPool pool;    public lykAction() {
            pool = ConnectionPool.getInstance();
        }
        //函数定义:
        public ActionForward execute(ActionMapping mapping,
     ActionForm form,
     HttpServletRequest request,
     HttpServletResponse response)
    throws Exception 
        {
    // Extract attributes and parameters we will need
    Locale locale = getLocale(request);
    MessageResources messages = getResources(request);
    HttpSession session = request.getSession();
    lykForm m_lykForm = (lykForm) form;

         Connection con = null;    try 
            {
           con = pool.getConnection();
           lykDAO m_lykDAO = new lykDAO(con);              String action=request.getParameter("action");
          
           if(action==null)action="find";
               
               if(action.equals("delete"))
               {
                   String expression=request.getParameter("expression");
                   m_lykDAO.removeID(expression);
               }
                ////////////
               if(action.equals("update"))
               {
                     String expression=request.getParameter("expression");
                     lyk m_lyk= new lyk(); 
                   //<update>
                     m_lyk.setUser_id(m_lykForm.getUser_id());
                     m_lyk.setPassword(m_lykForm.getPassword());
                     m_lyk.setName(m_lykForm.getName());
                     m_lyk.setDescription(m_lykForm.getDescription());
                     m_lyk.setWeb_site(m_lykForm.getWeb_site());
                     m_lyk.setAddress(m_lykForm.getAddress());
                     //</update>
                  
                   m_lykDAO.update(m_lyk,expression);
               }
               ///////////////
           //<sqlstr>
           String sql="SELECT * FROM dbo.attraction";
           //</sqlstr>
            Collection col = m_lykDAO.findSQL(sql);
            request.setAttribute("lyk",col);              //<分页>
            m_lykForm.setRowCount(col.size());
            m_lykForm.setLength(5);//设置每页显示记录数
           
            String page=request.getParameter("page");
            int ipage;
            try 
            {
                ipage=java.lang.Integer.parseInt(page,10);
            }
            catch (Exception e) 
                {
                    ipage=m_lykForm.getPage();
                }
            m_lykForm.setPage(ipage);
            m_lykForm.setOffset(ipage*m_lykForm.getLength());
            m_lykForm.setPageCount(m_lykForm.getRowCount()/m_lykForm.getLength()+1);
           
            String strPage="";
           
            strPage+="共";
            strPage+=String.valueOf(m_lykForm.getRowCount());
            strPage+="条记录,共";
            strPage+=String.valueOf(m_lykForm.getPageCount());
            strPage+="页,当前是第";
            strPage+=String.valueOf(ipage+1);
            strPage+="页,      ";
           
            int istart,iend;
            istart=ipage-5;
            if(istart<0) {istart=0;}
            iend=istart+10;
            if(iend>m_lykForm.getPageCount()) {iend=m_lykForm.getPageCount();}
            istart=iend-10;
            if(istart<0) {istart=0;}
            for(int i=istart;i<iend;i++)
            {
                strPage+="<a href='lykAction.do?action=find&page=";
                strPage+=String.valueOf(i);
                strPage+="'>";
                strPage+=String.valueOf(i+1);
                strPage+="</a>"; 
                strPage+="  ";
            }
           
            m_lykForm.setMybeanvariable1(strPage);  
                  m_lykForm.setAction(action);  
            request.setAttribute("lykForm",m_lykForm);
                  //</分页>       return mapping.findForward("success");
        } 
    catch (SQLException e) 
            {
           e.printStackTrace();
           throw new RuntimeException("Unable to get connection.");
         } 
            finally
            {
               try 
                 {
             if (con != null)
               con.close();
                } 
                 catch (SQLException e) 
                 {
             throw new RuntimeException(e.getMessage());
                }
           }    }} 
      

  12.   

    lykForm文件:这个Bean用于保存分页各参数及当前记录各字段的值
    package  OST;import javax.servlet.http.HttpServletRequest;
    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;public final class lykForm extends ActionForm  
    {
              private String  address;          private String  web_site;          private String  description;          private String  name;          private String  password;          private String  user_id;          private String  action;          private int rowCount;          private int pageCount;          private int page;          private int length;          private int offset;          private String mybeanvariable1;    //myfiledata;        public String getMybeanvariable1()
            {
                return (this.mybeanvariable1);
            }        public void setMybeanvariable1(String mybeanvariable1)
            {
                this.mybeanvariable1=mybeanvariable1;
            }
            public int getOffset()
            {
                return (this.offset);
            }        public void setOffset(int offset)
            {
                this.offset=offset;
            }
            public int getLength()
            {
                return (this.length);
            }        public void setLength(int length)
            {
                this.length=length;
            }
            public int getPage()
            {
                return (this.page);
            }        public void setPage(int page)
            {
                this.page=page;
            }
            public int getPageCount()
            {
                return (this.pageCount);
            }        public void setPageCount(int pageCount)
            {
                this.pageCount=pageCount;
            }
            public int getRowCount()
            {
                return (this.rowCount);
            }        public void setRowCount(int rowCount)
            {
                this.rowCount=rowCount;
            }
            public String getAction()
            {
                return (this.action);
            }        public void setAction(String action)
            {
                this.action=action;
            }
            public String getUser_id()
            {
                return (this.user_id);
            }        public void setUser_id(String user_id)
            {
                this.user_id=user_id;
            }
            public String getPassword()
            {
                return (this.password);
            }        public void setPassword(String password)
            {
                this.password=password;
            }
            public String getName()
            {
                return (this.name);
            }        public void setName(String name)
            {
                this.name=name;
            }
            public String getDescription()
            {
                return (this.description);
            }        public void setDescription(String description)
            {
                this.description=description;
            }
            public String getWeb_site()
            {
                return (this.web_site);
            }        public void setWeb_site(String web_site)
            {
                this.web_site=web_site;
            }
            public String getAddress()
            {
                return (this.address);
            }        public void setAddress(String address)
            {
                this.address=address;
            }}
      

  13.   

    这个问题我今天刚解决 
    你去看看这个吧
    http://expert.csdn.net/Expert/topic/2473/2473555.xml?temp=.1443903
      

  14.   

    lykDAO文件:主要实现对数据库的操作,包含了所有常用的查询、删除、加入新记录、更新等功能
    package  OST;
    import OST.lyk;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;import java.util.Collection;
    import java.util.ArrayList;public class lykDAO {  private Connection con;  public lykDAO(Connection con) {
        this.con = con;
      }  public void create(lyk m_lyk) throws SQLException {
        PreparedStatement ps = null;
        //<createSQL>
        String sql = "INSERT INTO dbo.attraction VALUES (?,?,?,?,?,?)";
        //</createSQL>
        try {
          if (con.isClosed()) {
            throw new IllegalStateException("error.unexpected");
          }
          ps = con.prepareStatement(sql);
          //<create>
          ps.setString(1,m_lyk.getUser_id());
          ps.setString(2,m_lyk.getPassword());
          ps.setString(3,m_lyk.getName());
          ps.setString(4,m_lyk.getDescription());
          ps.setString(5,m_lyk.getWeb_site());
          ps.setString(6,m_lyk.getAddress());
          //</create>      if (ps.executeUpdate() != 1) {
            throw new SQLException ("error.create.lyk");
          }
        } catch (SQLException e) {
         
            e.printStackTrace();
            throw new RuntimeException("error.unexpected");
          
        } finally {
          try {
            if (ps != null)
              ps.close();
          } catch (SQLException e) {
            e.printStackTrace();
            throw new RuntimeException("error.unexpected");
          }
        }
      }  public void update(lyk m_lyk,String keyID) {
        PreparedStatement ps = null;
        //<updateSQL>
       String sql = "UPDATE dbo.attraction SET user_id = ?,password = ?,name = ?,description = ?,web_site = ?,address = ? WHERE user_id = ?";
          //</updateSQL>
        try {
          if (con.isClosed()) {
            throw new IllegalStateException("error.unexpected");
          }
          ps = con.prepareStatement(sql);
          //<update>
          ps.setString(1,m_lyk.getUser_id());
          ps.setString(2,m_lyk.getPassword());
          ps.setString(3,m_lyk.getName());
          ps.setString(4,m_lyk.getDescription());
          ps.setString(5,m_lyk.getWeb_site());
          ps.setString(6,m_lyk.getAddress());
          //</update>      ///////////////
          //<updatekeyID>
          ps.setString(7,keyID);
              //</updatekeyID>
          if (ps.executeUpdate() != 1) {
            throw new SQLException (
              "error.removed.lyk");
          }    } catch (SQLException e) {
          e.printStackTrace();
          throw new RuntimeException("error.unexpected");
        } finally {
          try {
            if (ps != null)
              ps.close();
          } catch (SQLException e) {
            e.printStackTrace();
            throw new RuntimeException("error.unexpected");
          }
        }
      }
      public void remove(String sql) {
        PreparedStatement ps = null;
        try {      if (con.isClosed()) {
            throw new IllegalStateException("error.unexpected");
          }      ps = con.prepareStatement(sql);
       
          if (ps.executeUpdate() != 1) {
            throw new SQLException (
              "error.removed.lyk");
          }    } catch (SQLException e) {
          e.printStackTrace();
          throw new RuntimeException("error.unexpected");
        } finally {
          try {
            if (ps != null)
              ps.close();
          } catch (SQLException e) {
            e.printStackTrace();
            throw new RuntimeException("error.unexpected");
          }
        }
      } public void removeID(String keyID) {
       
        //<removeIDSQL>
        String sql="DELETE FROM dbo.attraction WHERE ";
        sql+="user_id";
        sql+=" = ?";
        //</removeIDSQL>    PreparedStatement ps = null;
        try {      if (con.isClosed()) {
            throw new IllegalStateException("error.unexpected");
          }      ps = con.prepareStatement(sql);
          
          //<setremovekeyIDdata>
          ps.setString(1,keyID);
              //</setremovekeyIDdata>
       
          if (ps.executeUpdate() != 1) {
            throw new SQLException (
              "error.removed.lyk");
          }    } catch (SQLException e) {
          e.printStackTrace();
          throw new RuntimeException("error.unexpected");
        } finally {
          try {
            if (ps != null)
              ps.close();
          } catch (SQLException e) {
            e.printStackTrace();
            throw new RuntimeException("error.unexpected");
          }
        }
      }
      public lyk findByPrimaryKey(String keyID)
        throws SQLException {    
        PreparedStatement ps = null;
        ResultSet rs = null;
        lyk m_lyk= null;    //<findByPrimaryKeySQL>
       String sql = "SELECT * from dbo.attraction  WHERE user_id = ?";
          //</findByPrimaryKeySQL>
        try {      if (con.isClosed()) {
            throw new IllegalStateException("error.unexpected");
          }      ps = con.prepareStatement(sql);
          //<setfindkeyIDdata>
          ps.setString(1,keyID);
              //</setfindkeyIDdata>
          rs = ps.executeQuery();      if (rs.next()) {
            m_lyk= new lyk();
          
            //<findByPrimaryKey>
          m_lyk.setUser_id(rs.getString(1));
          m_lyk.setPassword(rs.getString(2));
          m_lyk.setName(rs.getString(3));
          m_lyk.setDescription(rs.getString(4));
          m_lyk.setWeb_site(rs.getString(5));
          m_lyk.setAddress(rs.getString(6));
          //</findByPrimaryKey>        return m_lyk;
          } else {
            throw new SQLException (
              "error.removed.lyk");
          }    } catch (SQLException e) {
          e.printStackTrace();
          throw new RuntimeException("error.unexpected");
        } finally {
          try {
            if (ps != null)
              ps.close();
            if (rs != null)
              rs.close();
          } catch (SQLException e) {
            e.printStackTrace();
            throw new RuntimeException("error.unexpected");
          }
        }
      }  public Collection findSQL(String sql) {
        PreparedStatement ps = null;
        ResultSet rs = null;
        ArrayList list = new ArrayList();    try {
          if (con.isClosed()) {
            throw new IllegalStateException("error.unexpected");
          }
          ps = con.prepareStatement(sql);
          rs = ps.executeQuery();
          while(rs.next()) {      
            lyk m_lyk= new lyk(); 
            //<find>
          m_lyk.setUser_id(rs.getString(1));
          m_lyk.setPassword(rs.getString(2));
          m_lyk.setName(rs.getString(3));
          m_lyk.setDescription(rs.getString(4));
          m_lyk.setWeb_site(rs.getString(5));
          m_lyk.setAddress(rs.getString(6));
          //</find>        list.add(m_lyk);      }      return list;    } catch (SQLException e) {
          e.printStackTrace();
          throw new RuntimeException("error.unexpected");
        } finally {
          try {
            if (ps != null)
              ps.close();
            if (rs != null)
              rs.close();
          } catch (SQLException e) {
            e.printStackTrace();
            throw new RuntimeException("error.unexpected");
          }
        }
      }}
      

  15.   

    lyk.java文件:这是保存数据库记录的Bean文件,没什么特别的地方,但值得一提的是“address”可以改成中文的,例如“private String  地址;”即用中文变量名,这样可以与中文的字段名完全一样(对应),这一点许多人都不会想到。
    ----------------------
    package  OST;
    import org.apache.struts.action.ActionForm;
    public final class lyk extends ActionForm  
    {
              private String  address;
              private String  web_site;
              private String  description;
              private String  name;
              private String  password;
              private String  user_id;
        //myfiledata;
            public String getUser_id()
            {
                return (this.user_id);
            }
            public void setUser_id(String user_id)
            {
                this.user_id=user_id;
            }
           public String getPassword()
            {
                return (this.password);
            }
            public void setPassword(String password)
            {
                this.password=password;
            }        public String getName()
            {
                return (this.name);
            }
            public void setName(String name)
            {
                this.name=name;
            }
            public String getDescription()
            {
                return (this.description);
            }
           public void setDescription(String description)
            {
                this.description=description;
            }
            public String getWeb_site()
            {
                return (this.web_site);
            }
            public void setWeb_site(String web_site)
            {
                this.web_site=web_site;
            }
            public String getAddress()
            {
                return (this.address);
            }
            public void setAddress(String address)
            {
                this.address=address;
            }
    }-----------------
    为了说明可以用中文变量名,给出如下例子(在JSPStudio中调试通过):
    package  emptyprj;
    import org.apache.struts.action.ActionForm;
    public final class lyk extends ActionForm  
    {
              private boolean  审核;          private String  入库时间;          private String  行政国资号;          private String  设备照片;          private String  使用单位号;          private String  调转入日期;          private String  经手人;          private String  单据号;          private String  资产类别;          private String  使用方向;          private String  设备号;          private String  科研号;          private String  经费科目;          private String  领用人;       //myfiledata;        public String get领用单位号()
            {
                return (this.领用单位号);
            }        public void set领用单位号(String 领用单位号)
            {
                this.领用单位号=领用单位号;
            }
            public String get实验室名称()
            {
                return (this.实验室名称);
            }        public void set实验室名称(String 实验室名称)
            {
                this.实验室名称=实验室名称;
            }
            public String get仪器编号()
            {
                return (this.仪器编号);
            }        public void set仪器编号(String 仪器编号)
            {
                this.仪器编号=仪器编号;
            }
            public String get分类号()
            {
                return (this.分类号);
            }        public void set分类号(String 分类号)
            {
                this.分类号=分类号;
            }
            public String get仪器名称()
            {
                return (this.仪器名称);
            }        public void set仪器名称(String 仪器名称)
            {
                this.仪器名称=仪器名称;
            }
            public String get型号()
            {
                return (this.型号);
            }        public void set型号(String 型号)
            {
                this.型号=型号;
            }
            public String get规格()
            {
                return (this.规格);
            }        public void set规格(String 规格)
            {
                this.规格=规格;
            }
            public String get存放地()
            {
                return (this.存放地);
            }        public void set存放地(String 存放地)
            {
                this.存放地=存放地;
            }
            public float get单价()
            {
                return (this.单价);
            }        public void set单价(float 单价)
            {
                this.单价=单价;
            }
            public String get国别()
            {
                return (this.国别);
            }        public void set国别(String 国别)
            {
                this.国别=国别;
            }
            public String get国别码()
            {
                return (this.国别码);
            }        public void set国别码(String 国别码)
            {
                this.国别码=国别码;
            }
            public String get厂家()
            {
                return (this.厂家);
            }        public void set厂家(String 厂家)
            {
                this.厂家=厂家;
            }
            public String get出厂号()
            {
                return (this.出厂号);
            }        public void set出厂号(String 出厂号)
            {
                this.出厂号=出厂号;
            }
            public String get出厂日期()
            {
                return (this.出厂日期);
            }        public void set出厂日期(String 出厂日期)
            {
                this.出厂日期=出厂日期;
            }
            public String get购置日期()
            {
                return (this.购置日期);
            }        public void set购置日期(String 购置日期)
            {
                this.购置日期=购置日期;
            }
            public short get附件数量()
            {
                return (this.附件数量);
            }        public void set附件数量(short 附件数量)
            {
                this.附件数量=附件数量;
            }
            public float get附件总价()
            {
                return (this.附件总价);
            }        public void set附件总价(float 附件总价)
            {
                this.附件总价=附件总价;
            }
            public String get现状()
            {
                return (this.现状);
            }        public void set现状(String 现状)
            {
                this.现状=现状;
            }
            public String get管理级别()
            {
                return (this.管理级别);
            }        public void set管理级别(String 管理级别)
            {
                this.管理级别=管理级别;
            }
            public String get领用人()
            {
                return (this.领用人);
            }        public void set领用人(String 领用人)
            {
                this.领用人=领用人;
            }
    }