快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

STRUTS的一个简朴的包含SELECT下拉框的例子

首先,当然是需要你先对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</p> <p>
*@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</p> <p>
*@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
* <tt><html:select></tt> and <tt><html:option></tt> tags.</p> <p>
*@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. 然后就是页面上使用啦:)
<html:select property="type">
<html:options collection="appNames" property="id"
labelProperty="displayName"/>
</html:select>
返回类别: 教程
上一教程: 制作可以执行的 JAR 文件包及 JAR 命令详解
下一教程: VECTOR在JAVA编程中的应用

您可以阅读与"STRUTS的一个简朴的包含SELECT下拉框的例子"相关的教程:
· 用正则表达式判定一个简朴的用户登陆的例子
· 使用STRUTS在框架页面中不能指定目标框架的一个解决办法
· 一个体现Java接口及工厂模式长处的例子
· Java JDBC连接的一个例子
· 使用JSP + JAVABEAN + XML 开发的一个例子
    微笑服务 优质保证 索取样品