首 页 | 新 闻 | 技术中心 | 第二书店 | 《程序员》 | 《开发高手》 | 社 区 | 黄 页 | 人 才
移 动专 题SUNIBM微 软微 创精 华Donews人 邮
我的技术中心 
我的分类 我的文档
全部文章 发表文章
专栏管理 使用说明



 RSS 订阅 
最新文档列表
Windows/.NET
.NET  (rss)    
Visual C++  (rss)    
Delphi  (rss)    
Visual Basic  (rss)    
ASP  (rss)    
JavaScript  (rss)    
Java/Linux
Java  (rss)    
Perl  (rss)    
综合
其他开发语言  (rss)    
文件格式  (rss)    
企业开发
游戏开发  (rss)    
网站制作技术  (rss)    
数据库
数据库开发  (rss)    
软件工程
其他  (rss)    

积极原创作者 
goodboy1881 (13)
wangchinaking (58)
iiprogram (67)
fancyhf (1)
harrymeng (41)
yjz0065 (113)
coofucoo (105)
Drate (69)
lphpc (30)
smallnest (61)
CSDN - 文档中心 - Java 阅读:13655   评论: 10    参与评论
标题   Struts下拉框的实现     选择自 kui 的 Blog
关键字   Struts 下拉框 JSP Java
出处  

Struts下拉框的实现

 

 

[目标]

本例是在上一个例子“最简单的Struts程序”的基础上(见《如何实现最简单的Struts程序》)进行扩展的,其目标是在输入页中实现一个下拉输入框,在输出页中显示下拉输入框被选的值。

   本项目在前面的Simple项目的基础上进行扩展,那当然也可以建立一个新的项目。

 

[效果]

输入页面:

输出页面:

 

 

 

[背景知识]

 

 

[步骤]

 

1、运行JavaWebStudio、打开Simple项目:

选择菜单:“文件”----“打开项目”,选择最简单的Struts程序项目Simple目录,通过Simple.prj项目文件打开项目。

2、打开HelloWord.jap文件:

   JavaWebStudio文件管理器中打开HelloWord.jap文件,然后切换到工具栏中,选择Struts标签,把“Select标签”拖动到代码编辑窗口(或Web可视化编辑窗口)中。

 

 

在代码编辑窗口点击鼠标右键:

选择刷新视图,Web可视化编辑窗口得到刷新,结果如下图所示:

 

 

3、加入Bean变量:

 

Web可视化编辑窗口中,鼠标光标移到下拉列表框上并点击鼠标右键,选择“添加Bean变量”,加入变量名称为“select”的Bean变量(也可在HelloWordForm.java中点击鼠标右键进行同样的操作):

 

HelloWordForm.java自动加入了select变量及setSelec() getSelect()函数(黑体字部分的代码)。

package  emptyprj;

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 HelloWordForm extends ActionForm 

{

                private String select;

                private String mybeanvariable1;

    //myfiledata;

        public String getMybeanvariable1()

        {

            return (this.mybeanvariable1);

        }

        public void setMybeanvariable1(String mybeanvariable1)

        {

            this.mybeanvariable1=mybeanvariable1;

        }

                public void setSelect(String newselect)

                {

                select=newselect;

                }

                public String getSelect()

                {

                return select;

                }

                }

}

 

补充完HelloWord.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" %>

<%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %>

<html:html >

<head>

<title>

</title>

<META http-equiv=Content-Type content="text/html; charset=gb2312">

</head>

<body bgColor=white>

<html:base />  <html:form  method="post"

action="/HelloWordAction.do">

<html:text property="mybeanvariable1"   />

<html:select property="select">

   <html:option value="第一项">第一项</html:option>

   <html:option value="第二项">第二项</html:option>

   <html:option value="第三项">第三项</html:option>

</html:select>

 <html:submit  value="提交"   />  <html:reset  value="重写"   /> 

</html:form >

</body>

</html:html >

 

 

HelloWordOut.jsp文件中加入select变量输出标签<bean:write name="HelloWordForm"          property="select" />,即补充完HelloWordOut.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" %>

<%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %>

 

<html:html>

<head>

<title></title>

<html:base/>

</head>

<body bgcolor="white">

<html:html>

<head>

<title></title>

<html:base/>

</head>

<body bgcolor="white">

<bean:write  name="HelloWordForm"          property="mybeanvariable1" />

<p></p>

<bean:write  name="HelloWordForm"          property="select" />

</body>

</html:html>

</body>

</html:html>

 

看一下配置文件struts-config.xml的内容,在JavaWebStudio集成开发环境中,struts-config.xml一般是自动配置的,所以不用我们自己写代码:

<?xml version="1.0" encoding="ISO-8859-1" ?>

 

<!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="HelloWordForm"        

                         type="emptyprj.HelloWordForm"          />

</form-beans>

  <action-mappings>

<action  path="/HelloWordAction"        

                     type="emptyprj.HelloWordAction"        

                              name="HelloWordForm"                  

            scope="session"

                     input="/HelloWord.jsp">

       <forward name="success"          path="/HelloWordOut.jsp"         /></action>

</action-mappings>

</struts-config>

 

4、编译、启动服务器:

       

5、启动服务器:

点击工具条上的启动服务器按钮或选择菜单“运行” 启动服务器”启动服务器jakarta-tomcat服务器。内容如下:

点击工具条上的编译按钮或选择菜单“生成”“编译”开始项目的编译。编译过程和结果在输出栏中显示出来。

    输出结果表明利用ant 编译build.xml所设置的项目已成功。把编译结果拷贝到tomcat服务器webapps目录下,并生成打包文件Simple.war

 

 

 

6、运行:

  打开HelloWord.jap文件,点击工具条上的运行按钮或选择菜单“运行” 运行(web浏览)”这时打开显示出HelloWord.jsp的运行结果。

 

在运行结果页面中的输入框中输入“选择”,并选择下拉框中“第二项”,然后点击“提交”按钮,这时转发到HelloWordOut.jsp文件,HelloWordOut.jsp页面中输出“选择”一词,第二行输出了选择结果“第二项”。

 

 

*********************************************************************************

[扩展部分]

上面是通过手工编写<html:option/>的value数据来实现下拉列表框的数据填充的,这种方法容易理解,容易实现,但缺点一是不能从服务器中动态填充数据(例如从数据库中读取数据进行填充),二是当有多个输出页面使用同样的下拉列表框时,每个地主都要手工写一次数据填充,也不好维护。下面将采用Bean数据的方式填充下拉列表框,解决上述问题。

 

修改HelloWordAction.java文件:

首先加入:

import java.util.List;

import java.util.ArrayList;

然后再加入:

  List myList = new ArrayList();

     myList.add("第一项");

     myList.add("第二项");

     myList.add("第三项");

     request.setAttribute("myList",myList);

 

修改HelloWord.jsp文件:

把原来的内容:

<html:select property="select">

   <html:option value="第一项">第一项</html:option>

   <html:option value="第二项">第二项</html:option>

   <html:option value="第三项">第三项</html:option>

</html:select>

改写成:

<html:select property="select">

     <html:options name="myList"/>

</html:select>

 

最后编译,启动服务器,运行HelloWord.jsp文件,但出现如下错误:

 

是何道理?Cannot find bean under name myList。原来是没找到myList,没找到的原因就是因为我们是直接运行HelloWord.jsp文件,地址栏上显示http://localhost:8080\Simple\HelloWord.jsp,把它改写成http://localhost:8080\Simple\HelloWord.jsp,并按“Enter”键盘,这回正确了,并且与前面手工编写<html:option/>的value数据来实现下拉列表框的数据填充的运行效果完全一样:

 


相关文章
对该文的评论
CSDN 网友 ( 2005-03-10)
在最后的时候,您说把http://localhost:8080\Simple\HelloWord.jsp改成http://localhost:8080\Simple\HelloWord.jsp。就可以运行了,但是我没看出来这两个连接有什么不同。
kui ( 2004-12-04)
需要更多了解,可参考:http://www.javawebstudio.com/
CSDN 网友 ( 2004-09-21)
《Struts开发实例》

ftp://61.155.65.187/upload/
用户:lhbup
密码:lhbup

ftp://220.200.160.181/
    用户名:infoxa
    密码:infoxa 


ftp://218.28.64.19:22
下载帐号:javadown
下载密码:javadown


IP:61.145.118.137
用户名:csdn
密码:csdn
端口:21
请用FTP工具下载
CSDN 网友 ( 2004-08-18)
详细开发资料可到“ftp://61.129.102.53/Struts开发实例/”目录下载。
下载帐号:csdn
下载密码:csdn   这个下载不了啊。。谁有啊。可以共享一下嘛?
kui ( 2004-06-28)
详细开发资料可到“ftp://61.129.102.53/Struts开发实例/”目录下载。
下载帐号:csdn
下载密码:csdn