Struts 1.0标签
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>来导入相应的配置文件,使用别名prefix即可调用标签库设定的标记
Html struts-html.tld
Bean struts-bean.tld
Logic struts-logic.tld
Tiles struts-tiles.tld
Nested struts-nested.tld
红字为Struts中重要掌握的标签内容。一般JSP页面都导入红字相应的标签
接下来通过一个实例来说明HTML标记的使用(struts-HTML标签库)
表单
Html代码
1. <html:form action="reg.do" method="post">
文本框
Html代码
1. 用户名 <html:text property="username"/>
密码框
Html代码
1. 密码 <html:password property="userpass"/>
Property属性值的名字,就是对应ActionForm类里的属性名字
单选 性别 属性名字必须一致,否则视为多个单选组
Html代码
1. <html:radio property="gender" val ="0"/>男
2. <html:radio property="gender" val ="1"/>女
?复选 爱好 这里返回的是一个数组,一般为String[]
Html代码
1. <html:multibox property="hobby" val ="看书"/>看书
2. <html:multibox property="hobby" val ="睡觉"/>睡觉
3. <html:multibox property="hobby" val ="编程"/>编程
下拉
Java代码
1. LabelVal Bean lvbean=new LabelVal Bean();
2. lvbean.setLabel(""+i);
3. lvbean.setVal (""+i);
4. list.add(lvbean);
年龄 (它比较特殊,必须用到集合对象才可以往标签里添加下拉数据,它是以LABLE与 VAL 存取)
在ActionForm里获取的也是它设置的VAL 值。
Html代码
1. <html:select property="age">
2. <html:options collection="list" labelProperty="label" property="val "/>
3. </html:select>
文本区
Html代码
1. 备注
2. <html:textarea property="memo" rows="5" cols="60"/>
?隐藏
提交 直接请求发送
清除 清空表单的内容
取消 也是和请求一样会向Action请求,但是方式不一样可以用这个方法来判断是否是取消请求
Html代码
1. <html:s mit>提交</html:s mit> or <html:s mit val =”提交”/>
2. <html:reset>清除</html:reset>
3. <html:cancel>取消</html:cancel>
Java代码
1. //判断是否点击了"取消"按钮
2. boolean flag=this.isCancelled(req st);
3. if(flag){ //如果点击了"取消"按钮
4. return mapping.findForward("reg");
5. //重定向到注册页(想用重定向必须在struts-config.xml中配置属性
6. //<forward name="reg" path="/reg.jsp" redirect="tr " />
7. }
第二个知识点为:Struts中的文件上传
记得以前Servlet时文件上传也是要在Form中指定请求数据类型吧,这里也一样(指定为二进制数据)
Html代码
1. <html:form action="upload.do" method="post" enctype="multipart/form-data">
<html:file property="photo"/>
它对应的ActionForm的类型为org.apache.struts.upload.FormFile;
另一点注意的是,如果该表单里有其他的文本框要提交的话,需要注意的是,它也是以二进制数据提交,所以在ActionForm里无法直接通过请求处理配置转换成中文,必须使用自定义方法强制转换,并且要注意,它转发给页面时的一般属性也会丢失。如页面一有一属性与一文件上传,提交后直接转发到另一页面并显示属性的值报错
转换中文方法为:
Java代码
1. p lic String changeGbk(String str){
2. String newstr = null;
3. try {
4. newstr = new String(str.getBytes("ISO8859-1"), "gb2312");
5. } catch (UnsupportedEncodingException ex) {
6. }
7. return newstr;
8. }
接下来再看Action是如何处理文件上传的,它有两种方法处理上传文件并保存到指定目录。
方法一:
输入流
Java代码
UploadActionForm uploadActionForm = (UploadActionForm) form;
//接收内容并且存盘(web\photos)
FormFile photo=uploadActionForm.getPhoto();//获得请求文件的内容FormFile
try {
InputStream in=photo.getInputStream();//通过上传文件对象获得输入流
String filename=photo.getFileName();//常用方法,获得上传文件的文件名
String path=servlet.getServletContext().getRealPath("photos");
//通过servlet获得服务器上下文对象获取指定目录的绝对路径
如:d:\regprj\Web\photos
String newfilename=path + File.separator + filename;
//拼装要创建的文件全路径及文件名File.separator方法会根据系统自动选择’/’or’\’
如:d:\regprj\Web\photos\updatefile.jpg
FileOutputStream out=new FileOutputStream(newfilename);//把路径给文件输入流对象
byte[] array1=new byte[1024];//设置缓冲大小,单位:字节
int len;
while( (len=in.read(array1))>0 ){
out.write(array1,0,len);
}
out.flush();
out.close();
in.close();
photo.destroy();//销毁文件;
} catch (Exception ex) {
ex.printStackTrace();
}
方法二:
Java代码
1. UploadActionForm uploadActionForm = (UploadActionForm) form;
2. //接收内容并且存盘(web\photos)
3. FormFile photo=uploadActionForm.getPhoto();//获得请求文件的内容FormFile
4. try {
5. String filename=photo.getFileName();
6. String path=servlet.getServletContext().getRealPath("photos");
7. String newfilename=path + File.separator + filename;
8. FileOutputStream out=new FileOutputStream(newfilename);
9. out.write(photo.getFileData());
10. out.flush();
11. out.close();
12. photo.destroy();//销毁文件;
13. } catch (Exception ex) {
14. ex.printStackTrace();
15. }
UploadActionForm uploadActionForm = (UploadActionForm) form;
//接收内容并且存盘(web\photos)
FormFile photo=uploadActionForm.getPhoto();//获得请求文件的内容FormFile
try {
String filename=photo.getFileName();
String path=servlet.getServletContext().getRealPath("photos");
String newfilename=path + File.separator + filename;
FileOutputStream out=new FileOutputStream(newfilename);
out.write(photo.getFileData());
out.flush();
out.close();
photo.destroy();//销毁文件;
} catch (Exception ex) {
ex.printStackTrace();
}
区别就是两个方法使用的读取源二进制文件的方式不同。以上为黄色代码部份。
第三个知识点为<h1>测试超链接及图像标记</h1>
Html代码
1. <html:link href="index.jsp">回主页</htm
分享到:
相关推荐
Struts1.0是一个经典的Java Web开发框架,由Apache软件基金会维护,主要用于构建基于MVC(Model-View-Controller)模式的应用程序。本教程将深入探讨如何实现一个简单的Struts1.0应用。 首先,我们需要了解Struts...
除了Action和ActionForm,Struts1.0还包括一系列的标签库,如Logic标签库、HTML标签库和Bean标签库,这些标签库提供了丰富的功能,例如条件判断、循环、表单元素创建等,极大地简化了JSP页面的编写。 在实际应用中...
在这个"struts1.0的上传代码"实例中,我们将深入探讨如何在Struts 1.0中实现文件上传功能。 文件上传在Web应用中很常见,例如用户可以上传个人头像或提交文档。在Struts 1.0中,这个过程涉及以下几个关键部分: 1....
Struts 1.0框架是Java Web开发中的一个里程碑,由Apache软件基金会开发并维护,是Model-View-Controller(MVC)设计模式的一种实现。它于2001年首次发布,为开发者提供了一种结构化、可扩展的方式来构建Web应用程序...
Struts1.0x版本在Web开发领域具有广泛的影响力,为开发者提供了强大的控制层结构,使得业务逻辑和表现层分离,从而提高了代码的可维护性和可重用性。下面我们将深入探讨Struts1.0x源码中的关键组件、工作原理以及其...
本教程将深入探讨Struts1.0和Struts2.0两个版本的主要概念、设计模式以及它们在实际开发中的应用。 Struts1.0: Struts1.0是最早的版本,它引入了Model-View-Controller(MVC)架构,帮助开发者更好地组织和分离...
Struts1.0是该框架的早期版本,提供了基础的MVC架构支持。这个"struts1.0的计算器源码"是一个示例项目,用于演示如何在Struts1中实现一个简单的计算功能。 在Struts1中,应用程序的核心是Action类,每个Action类...
### Struts1.0教程(简版)知识点详解 #### 1. Struts简介 - **Struts**:Struts 是一个开源的 Java Web 应用框架,它遵循 MVC(Model-View-Controller)设计模式。该框架由 Craig R. McClanahan 开发并捐赠给 ...
Struts 1.0是一个经典的Java Web开发框架,由Apache软件基金会开发,它极大地简化了MVC(模型-视图-控制器)架构的实现。在本实例中,我们将深入探讨Struts 1.0的核心概念、工作原理以及如何创建一个基本的应用程序...
以下是对"Struts1.0入门代码"的详细解释: 1. **MVC架构**: MVC模式是软件设计中的一个重要概念,它将应用程序分为三个主要部分:模型(Model)负责处理数据和业务逻辑,视图(View)负责展示数据,控制器...
在Struts1.0和Struts2.0中,国际化都是通过资源文件来实现的,允许开发者为不同的语言和文化定制消息、标签和文本。 **Struts1.0的国际化** 在Struts1.0中,国际化主要依赖于资源属性文件。这些文件通常命名为`...
### Struts1.0与Struts2的主要区别 在探讨Struts1.0与Struts2之间的区别之前,我们先简单了解一下这两个框架的基本背景。Struts是Apache软件基金会的一个开源项目,它提供了一套用于构建企业级Web应用程序的框架。...
在这个"struts1.0实例"中,我们将探讨Struts 1.0的核心概念、主要组件以及如何通过实际应用来理解其工作原理。 1. **MVC模式**:MVC模式是Struts的基础,它将业务逻辑、数据和用户界面分离,使得每个部分都可以独立...
### Struts 1.0教程:构建MVC架构下的Web应用程序 #### 一、Struts框架简介 Struts是Apache基金会开发的一款开源的MVC(Model-View-Controller)架构框架,主要用于Java EE平台上的Web应用程序开发。Struts 1.0...
Struts1.0是Apache软件基金会的Jakarta项目下的一个开源框架,主要用于构建基于Java的Web应用程序。在Struts1.0中实现文件上传功能是一个常见的需求,这通常涉及到用户通过网页选择本地文件并将其传输到服务器的过程...
Struts1.0版本虽然现在已经较为老旧,但对于理解MVC架构和标签库的使用仍然是很有帮助的。本资料主要集中在Struts1.0的标签库学习,下面我们将详细探讨Struts标签库及其在实际开发中的应用。 首先,我们来看"Struts...
主要内容 Struts 1.0和Struts 1.1 Jakarta Scaffold工具包 HTTP、Java Servlet和JSP标签库 基于Servlet的应用程序设计 设计和开发模式 Jakarta Validator和Tile包 Velocity模板 动态的Web程序设计 使用数据库以及...
为了更好地使用Struts标签库,我们需要在JSP页面中引入对应的标签库,如`<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>`, `<%@ taglib uri="http://struts.apache.org/tags-...
在 Struts 中,自定义标签是提供一种灵活的方式,使得视图层(通常为 JSP 页面)能够更好地与业务逻辑交互,从而提高代码的可读性和可维护性。本文将深入探讨如何在 Struts 中实现自定义标签。 一、自定义标签概述 ...