Struts复选框的实现
[相关链接]
《JavaWebStudio系列开发工具Visaul Struts版本简介》http://dev.csdn.net/develop/article/28/28871.shtm
《如何实现最简单的Struts程序》http://dev.csdn.net/develop/article/28/28946.shtm
《Struts下拉框的实现》http://dev.csdn.net/develop/article/28/28956.shtm
《Sruts单选框的实现》
开发环境:Java Web Studio系列开发环境visual strutst版本。
最新JavaWebStudio下载地址:ftp://210.36.64.79/kui
[目标]
本例是在上一个例子“最简单的Struts程序”的基础上(见《如何实现最简单的Struts程序》)进行扩展的,其目标是在输入页中实现复选框,在输出页中显示复选框被选的值。
本项目在前面的Simple项目的基础上进行扩展,那当然也可以建立一个新的项目。
[效果]
输入页面:
输出页面:
[背景知识]
[步骤]
1、运行JavaWebStudio、打开Simple项目:
选择菜单:“文件”----“打开项目”,选择最简单的Struts程序项目Simple目录,通过Simple.prj项目文件打开项目。
2、打开HelloWord.jap文件:
从JavaWebStudio文件管理器中打开HelloWord.jap文件,然后切换到工具栏中,选择Struts标签,把“checkbox标签”拖动到代码编辑窗口(或Web可视化编辑窗口)中。
在代码编辑窗口点击鼠标右键:选择刷新视图,Web可视化编辑窗口得到刷新。
3、加入Bean变量:
在Web可视化编辑窗口中,鼠标光标移到第一个复选框上并点击鼠标右键,选择“添加Bean变量”,加入变量名称为“check1”的Bean变量(也可在HelloWordForm.java中点击鼠标右键进行同样的操作),然后对第二个复选框、第三个复选框进行同样的添加Bean变量操作,分别添加变量名称为“check2”、“check3”的Bean变量:
上述“添加Bean变量”操作完成,HelloWordForm.java自动加入了select变量及setRadio()和 getRadio()函数(黑体字部分的代码)。
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 check3;
private String check2;
private String check1;
private String mybeanvariable1;
public String getMybeanvariable1(){
return (this.mybeanvariable1);
}
public void setMybeanvariable1(String mybeanvariable1) {
this.mybeanvariable1=mybeanvariable1;
}
public void setCheck1(String newcheck1) {
check1=newcheck1;
}
public String getCheck1() {
return check1;
}
public void setCheck2(String newcheck2) {
check2=newcheck2;
}
public String getCheck2(){
return check2;
}
public void setCheck3(String newcheck3) {
check3=newcheck3;
}
public String getCheck3(){
return check3;
}
}
补充完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" />
<p></p>
<html:checkbox property="check1" value="第一项" />第一项
<html:checkbox property="check2" value="第二项" />第二项
<html:checkbox property="check3" value="第三项" />第三项
<p></p>
<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" />
<bean:write name="HelloWordForm" property="check1" />
<bean:write name="HelloWordForm" property="check2" />
<bean:write name="HelloWordForm" property="check3" />
</body>
</html:html>
</body>
</html:html>
4、编译、启动服务器:
5、启动服务器:
点击工具条上的启动服务器按钮或选择菜单“运行”—“ 启动服务器”启动服务器jakarta-tomcat服务器。内容如下:
点击工具条上的编译按钮或选择菜单“生成”—“编译”开始项目的编译。编译过程和结果在输出栏中显示出来。
输出结果表明利用ant 编译build.xml所设置的项目已成功。把编译结果拷贝到tomcat服务器webapps目录下,并生成打包文件Simple.war。
6、运行:
打开HelloWord.jap文件,点击工具条上的运行按钮或选择菜单“运行”—“ 运行(web浏览)”这时打开显示出HelloWord.jsp的运行结果。
在运行结果页面中的输入框中输入“选择”,并选择下拉框中“第二项”,然后点击“提交”按钮,这时转发到HelloWordOut.jsp文件,HelloWordOut.jsp页面中输出“选择”一词,第二行输出了选择结果“第二项”。
[补充说明]
与单选框相比,复选框唯一不同的作法是前所有选择项只对应一个Bean变量,而后者每一个选择项只对应一个单独的Bean变量。
如果想要让复选框只对应一个Bean变量,也有办法,只是用一个数组型的Bean变量保存数据,同时把<html:checkbox>标签换成< html:multibox>标签。