<%@ page contentType="text/html; charset=gb2312"%> struts的一个简单的包含select下拉框的例子
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
struts的一个简单的包含select下拉框的例子
     发布者: 发布时间:2007-01-03
首先,当然是需要你先对struts有一定的了解:)

1. 定义相应页面(client.jsp)的form bean,这里假设为ClientForm;注意在struts_config.xml中定义映射关系;client.jsp中包含了你需要的html form内容,比如一个select下拉框;

这里是form bean的代码(其实就是一个java bean,继承了ActionForm,然后需要重载reset和validate方法):
-----------------------------------------------
package com.egi.core.ioblock.form;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;

/**
*  Copyright: Copyright (c) 2002


*@author     sjoy
*@created    2003年6月4日
*@version    1.0
*/

public class LoginForm extends ActionForm {

  //-----------------------------Instance Variable
  private String appName = null;
  private String type = null;

  public String getAppName() {
    return appName;
  }

  public void setAppName(String appName) {
    this.appName = appName;
  }

  public String getType() {
    return type;
  }

  public void setType(String type) {
    this.type = type;
  }

  public void reset(ActionMapping mapping, HttpServletRequest request) {
    appName = null;
    type = null;
  }

  public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {

    ActionErrors errors = new ActionErrors();
    if (appName == null || appName.length() < 1) {
      errors.add("application name", new ActionError("error.appname.required"));
    }
    return errors;
  }
}
-----------------------------------------------


这里是ActionServlet代码,继承Action:
-----------------------------------------------
package com.egi.core.ioblock.action;

import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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.ActionMapping;
import org.apache.struts.action.ActionForward;
import com.egi.core.ioblock.form.LoginForm;
import com.mainet.core.spreadsheet.db.MenusTreeTable;
import com.mainet.core.spreadsheet.ProjectFactory;

/**
*  Copyright: Copyright (c) 2002


*@author     sjoy
*@created    2003年6月4日
*@version    1.0
*/

public class LoginAction extends Action {

  public ActionForward perform(ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
   throws IOException, ServletException {

    ActionErrors errors = new ActionErrors();
    String appName = ((LoginForm) form).getAppName();
    
    //下面是你所需要的一些逻辑
    ...
    HttpSession session = request.getSession();
    ...
    
    return mapping.findForward("success");
  }
}

-----------------------------------------------


2. 写一个bean,专门用来保存select的option集合。代码如下:
-----------------------------------------------
package com.egi.core.ioblock.util;

import java.io.Serializable;

/**
*  Description: This class is a bean, used to represent one option in an HTML
*  drop-down ''select'' list. It contains two properties - see {@link
*  getDisplayName()} and {@link getInternalId()} for a description. Useful in a
*  struts Form class for constructing a select list to pass to the jsp with the
*   and tags.


*@author     sjoy
*@created    2003年6月4日
*@version    1.0
*/

public class HtmlSelectOption implements Serializable {
  private String id;
  private String displayName;

  /**
   *  Constructor for the HtmlSelectOption object
   */
  public HtmlSelectOption() { }

  /**
   *  Constructor for the HtmlSelectOption object
   *
   *@param  id           Description of the Parameter
   *@param  displayName  Description of the Parameter
   */
  public HtmlSelectOption(String id, String displayName) {
    this.id = id;
    this.displayName = displayName;
  }

  public String getDisplayName() {
    return displayName;
  }

  public void setDisplayName(String displayName) {
    this.displayName = displayName;
  }

  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }
}
-----------------------------------------------

3. ok,接下来从db或者其它地方去取下拉列表中的具体内容;
java.util.Iterator iter = ....;//这里假设从数据库中取得数据
java.util.ArrayList list = new java.util.ArrayList();
String obj;
while(iter.hasNext()){
  obj = (String)iter.next();
  list.add(new com.egi.core.ioblock.util.HtmlSelectOption(obj,obj));
}
pageContext.setAttribute("appNames", list);

注意:这段逻辑也可以写在ClienetForm中通过javabean的方式在页面上获得这个集合。

4. 然后就是页面上使用啦:)

                     labelProperty="displayName"/>


搞定!

(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
XML在各个领域中的运用
J2EE 应用程序
java+xml中文问题解决方法
用RMI實現J2EE分佈試應用之試驗手記
用JavaScript编写HelloWorld应用
weblogic 下 jsp 连接数据库的例(使用JDNI)
 
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号