struts开发实践[转]

Struts入门及实践指南 本文还有配套的精品资源,点击获取 简介:Struts是一个开源的Java Web框架,通过MVC设计模式简化了Java Servlet API的使用,并帮助开发者构建应用。本课程旨在指导初学者理解Struts框架的核心组件和工作流程,包括ActionServlet、配置文件、ActionForm、Action、ActionMapping及JSP视图层。同时,掌握Struts... 阅读详情

<pre>

一、struts使用小贴士(mainly from《struts in action》)
1. 在actionForm中使用array以匹配重复的变量。例如在使用multibox时,相对应的可以在form中定义array。
2.使用<bean:size>显示collection的记录总数。
 eg:<bean:size id=”listSize” name=”resultList”>。如果resultList有两条记录,则显示2。
3. 显示循环序号标记:
 <logic:iterate id=”element” name=”list” indexed=”index”>
  <bean:write name=”index”/>
 </logic:iterate>
4.使用<logic:present></logic:present>检查对象是否存在。使用<logic:notEmpty ></logic:notEmpty>检查属性是否存在。
5. 相对稳定的下拉列表数据集使用scope=”application”。(这个方法一直想用,但是具体上仍不太清楚,是否在系统登陆的时候获得这个数据集,以后就可以直接用了)。
6.使用<html:rewrite>设置css,js文件的路径。(这一点看不出来与直接使用有什么区别)。
7.javascript与form值的交互:这一点使用很频繁
 eg:< a href=’javascript:doDelete(<bean:write name=”testForm” property=”id”>)’>
8.使用DispatchAction将几个相关的操作放在一起,例如将save,delete操作放在一个action中。DispatchAction的使用需要在struts-config.xml中的action-mapping中设置parameter,具体可以参考
9. 在使用javascript的页面中,不能出现两个Form对象的名称相同。特别是submit按钮我们常常会不写name,缺省name都为submit,这是如果有onclick事件触发,就会出错。
10. 几个ActionForm公用的属性,可以在ActionForm中定义一个子类。
 eg: Class BasicInfo  implement Serializable {};
      在ActionForm中需定义BasicInfo basicInfo = new BasicInfo();
     在jsp页面中的property="basicInfo.a"
二、上传文件
1. 在actionForm中需定义FormFile类型字段。eg:FormFile myphoto
2. 在jsp页面中
 <form enctype="multipart/form-data">
 <html:file property="myphoto">
3.在submit以后可能会出现一下错误:no multipart request date sent”
解决方案:
 1.将struts-config.xml中redirect树性置为true。
 2.如果是带参数的跳转,采用以下方法:
 ActionForward forward = mapping.findForward("success");
 StringBuffer bf = new StringBuffer(forward.getPath());
 bf.append("?id=1");//参数
 return new ActionForward(bf.toString(),true);

 三、图片的显示
1.写一个显示图片的Action,代码结构如下:

public class PhotoAction extends Action {

  private static final String CONTENT_TYPE = "image/gif";

  public ActionForward perform(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response)

  throws ServletException, IOException{

    response.setContentType(CONTENT_TYPE);

    ...//GET PARAM employeeId

    ServletOutputStream out = response.getOutputStream();

    InputStream in =null;

    try{

        in = ...//get blob pic

    }

     catch (Throwable e) {

        e.printStackTrace();

     }

   if(in!=null){

     try {

       int len;

       byte buf[] = new byte[4096];

       while ( (len = in.read(buf, 0, 4096)) != -1) {

         out.write(buf, 0, len);

       }

     }

     catch (IOException ioe) {

       ioe.printStackTrace();

     }

   }

    return null;

  }

}

2.在显示图片的jsp页面写如下代码:

<html:img height="98%" alt="职工照片" src="photoAction.do" paramId="employeeId" paramName="ePhotoForm" paramProperty="employeeId" width="150" border="0" align="center" />

四、使ApplicationResources.properties支持中文显示:

进入命令提示符页面,进入jdk安装路径下的bin目录,执行一下命令:

native2ascII - encoding gb2312 ApplicationResources_ISO.properties(原文件) AllicationResources.properties(新生成文件)

即可在jsp页面显示中文。

但是,目前还有一点问题没解决,就是在jsp页面显示的内容为“null error ”,你出现过相同问题吗?怎么解决的?

五:Action中的文件路径问题:

在Action中需要调用一个xml文件,是用相对路径在本地编译没有问题,但是一放在服务器上执行就找不到文件路径。找了很多解决方法,最后调用了request.getRealPath("/")方法,行的通,但是这个方法已经不被建议使用了。你有更好的方法吗?

六:jsp页面显示字符串数组:

<logic:iterate name="dateList" id="dateList" type="java.lang.String">

<bean:write name="dateList">

</logic:iterate>

七:如何定义自己的jsp文件发布路径(windows2000环境下实践通过):

打开tomcat目录下conf文件夹下的server.xml文件,找到<!-Tomcat manager Context->标签

在其<context >标签后,添加自己的发布路径,如下:

<context path="/mywebapps" docbase="D:/work" debug="0" reloadable="true"/>

重启tomcat,访问:/localhost:8080/mybwebapps/,ok!

八:如何解决偏僻难字的显示问题:

使用大字符集,将所有jsp页面字符集设置如下:<%@ page contentType="text/html;charset=GBK" %>注意:GBK一定得大写。

九:页面刷新数据重复提交问题:

解决的方法就是采用重定向。与二的解决方法相同:

    1.将struts-config.xml中redirect属性置为true。

    2.如果是带参数的跳转:

    ActionForward forward = mapping.findForward("success");

    StringBuffer bf = new StringBuffer(forward.getPath());

    bf.append("?id=1");//参数

    return new ActionForward(bf.toString(),true);

十:其他:

编程规范建议:

数据库接口类命名:*DAO.JAVA

逻辑类命名:*BO.JAVA

ACTION命名:*Action.JAVA

ACTIONFORM命名:*Form.JAVA

然后一个功能模块的文件放在一个包内。

都是一些比较初级的问题,但是希望能够助你在学习struts之初少走点弯路,也希望对于文中的问题给予指点,:)。


摘自

http://blog.youkuaiyun.com/smilelily/

</pre>

全面掌握Struts框架开发资料集 本文还有配套的精品资源,点击获取 简介:Struts框架是实现MVC模式的重要Java Web开发组件,支持构建可扩展和模块化的Web应用程序。本资料从基础到进阶详细介绍了Struts框架的使用,包括环境配置、Action类、struts.xml配置、国际化处理及数据验证等关键概念和实践方法。同时,涵盖了Servlet、JSP和JSTL等Java Web编程核心知识,帮助开... 阅读详情

相关推荐

深入解析Java Web Struts2开发实践

在现代Web开发领域,Java Web框架层出不穷,Struts2作为一个成熟的Web应用框架,已被广泛应用于企业级应用开发中。本章将对Struts2框架的基本概念进行概述,以及它如何在Java Web开发中占据一席之地进行介绍。Struts2框架是Apache Struts的第二个主要版本,它是一个基于MVC(Model-View-Controller)设计模式的Web应用框架。

weixin_42612804的博客 275

struts logic:itereate bean:write 标签

Iterate主要用来处理在页面上输出集合类,集合一般来说是下列之一: 1、 java对象的数组 2、 ArrayList、Vector、HashMap等 具体用法请参考struts文档,这里不作详细介绍 现在定义一个class,User.java 把它编译成User.class package example; import java.io.Seria...

老朱的专栏 435

Struts2框架在Web开发中的应用与实践

本文通过对Struts2框架的介绍,深入探讨了其在MVC架构中的应用。详细解读了Struts.xml配置文件的作用,以及如何通过Web.xml维护Struts2应用。此外,还包括了对Struts2组件的解析以及对几个关键面试问题的回答。

weixin_32251525的博客 846

JSTL标签logic:iterate详解

&lt;logic:iterate&gt; 是Logic 标签库中最复杂的标签,也是用途最广的一个标签,它能够在一个循环中遍历数组、Collection、Enumeration、Iterator 或 Map 中的所有元素    length    属性指定需要遍历的元素的数目, 如果没有设置length 属性, 就遍历集合中的所有元素.  offset      属性指定开始遍历的起始位置, ...

lemon 719

Struts2+Hibernate+Spring框架整合开发实践

本文还有配套的精品资源,点击获取 简介:Struts2、Hibernate和Spring是Java开发中广泛使用的三大轻量级框架。Struts2负责前端交互和业务逻辑分离,Hibernate简化数据库操作,Spring提供全面的后端服务。整合这些框架能够构建出高效、松耦合的企业级应用,降低开发难度,提高效率。本实践项目涵盖了MVC模式、对象关系映射、依赖注入、面向切面编程等...

weixin_42576186的博客 2110

Struts2与Velocity整合实践:高效Web开发实例

Struts2是一个用于构建Web应用的开源框架,它基于MVC设计模式,将业务逻辑层、控制层和视图层进行分离。Struts2在简化Web层的开发工作上起到了重要作用,使得开发者可以更专注于业务逻辑的实现。Velocity是一个基于Java的模板引擎,广泛用于Web应用开发中,用来生成动态内容。它可以看作是JSP的一个轻量级替代品。与许多现代模板引擎类似,Velocity的主要任务是将数据模型与模板结合,以生成HTML,XML或其他格式的文本文件。

weixin_30600615的博客 998

jsp通过logic:iterate或html:optionsCollection循环显示action中传过来的对象List

action中代码如下: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->        List allUser=this.getLoginServiceImpl().find();         request.set

球球之家 1359

Struts2插件整合详解与实践

Apache Struts2是一个基于MVC模式的Web应用框架,它为Java EE应用提供了灵活的开发环境。与早期的Struts1框架相比,Struts2在架构和设计理念上有了显著改进,如引入了拦截器链、值栈以及OGNL表达式语言等特性,使得开发者能够更加高效地创建动态、数据驱动的Web应用。开发一个自定义的Struts2插件是一个涉及细致设计和充分测试的过程。在这一章中,我们将深入探讨如何设计和开发一个实用的插件,确保它能够无缝地融入现有的Struts2应用架构中。

weixin_42327217的博客 1145

Struts2、Spring、Hibernate 高效开发的最佳实践(转)

  引言 SSH(Struts2+Spring+Hibernate)是最为 Java 业界熟知的 Java EE Web 组件层的开发技术。很多人提起 Java EE,甚至都会将其误认为就是 SSH。无论是书籍还是电子教程,大部分都已经千篇一律,讲解各种标签、配置的用法。许多人包括笔者在内,第一次使用 SSH 的时候,按照教程的介绍进行开发。繁琐的配置,重复的修改配置,不断定义的参数转换器,真...

anlystar 164

jsp脚本和标签:实现循环和分支逻辑

jsp脚本和标签:实现循环和分支逻辑 jsp脚本和标签:实现循环和分支逻辑 jsp脚本和标签:实现循环和分支逻辑

QT播放器插件内嵌浏览器配合流媒体实现国标摄像头网页端播放

基本原理在浏览器⽹页中的指定播放窗口的位置和⼤⼩,实现⼀个内嵌到⽹页中显⽰的播放窗⼝,前端还必须可对这个内嵌播放窗⼝进⾏控制,⽽且播放窗⼝必须跟随浏览器窗⼝的移动和缩放、⽹页滚动、标签页切换、关闭等操作进⾏⾃动联动。播放器可以通过QT实现。这个播放窗⼝同时提供Web Socket的服务端和JSON打包命令的解析执⾏模块,前端就可以通过Web Socket连接后发送JSON打包的控制命令实现控制播放窗⼝。

cameravision的博客 562

[转] Struts2、Spring、Hibernate 高效开发的最佳实践

FROM:http://www.ibm.com/developerworks/cn/java/j-lo-ssh/ 简介:Struts2、Spring、Hibernate(SSH)是最常用的 Java EE Web 组件层的开发技术搭配,网络中和许多 IT 技术书籍中都有它们的开发教程,但是通常的教程都会让很多程序员陷入痛苦的配置与修改配置的过程。本文利用 SSH 中的技术...

weixin_38166789的博客 66

OC5021B 100V宽电压输入 LED车灯/大功率照明 DC降压型恒流驱动器

适用于LED大功率汽车大灯/大功率照明 OC5021B 100V宽电压输入 5A电流设计 DC-DC降压型恒流驱动IC

Handsome63841990的博客 2417

用Struts开发基于MVC的Web应用(转)

来源: yesky   作者: 马 岩   MVC介绍  MVC模式是一种非常理想化的设计模式,应用MVC模式完成两个以上项目的人都有同样的体会,他们已经对以前的工作方法进行了彻底的改造。工作模式的改变要付出痛苦的代价,但现在你有现成的技术架构可以采用,避免在项目中自己开发、摸索。它就是开源Apache Struts framework,它提供了实现

Dick Winters的Java专栏 1613

无GPS室内飞行:基于PX4与MID360的FAST-LIO定点悬停实战解析

本文详细解析了基于PX4飞控与大疆MID360激光雷达的无GPS室内飞行技术,重点介绍了FAST-LIO算法在定点悬停中的应用。通过硬件配置、软件环境搭建、坐标系转换等实战经验,帮助开发者解决室内定位难题,实现精准悬停与稳定飞行。

weixin_29056781的博客 262

SOLIDWORKS无法获得下列许可 无效的使用许可号码(-8,544,0) 解决办法大全

SOLIDWORKS无法获得下列许可 无效的使用许可号码(-8,544,0) 解决办法大全。版本:SolidWorks2021。电脑:惠普战66四代。软件安装不困难!

qq_43596278的博客 11万+

使用 Easy Struts for Eclipse 开发 Struts[转]

如何使用 Easy Struts 插件Nancy Chen Junhua软件顾问和开发者2004 年 4 月 本文向您介绍了如何在 Eclipse IDE 中使用 Easy Struts 插件开发 Struts 应用程序。本文首先对 Easy Struts 及其安装配置步骤进行了简介,并通过一个循序渐进的例子介绍了如何构建一个基本的 Struts 应用程序。本文还介绍了增强 Struts

445

【win11+vs 2017+OpenCV4.5.5+Qt5.12配置】详细安装过程+小问题解决

由于Qt5无法与最新的vs2022兼容,扩展工具中一直显示不可用,所以将vs降级成vs2017。在安装Qt的过程中,会选择安装Qt套件,其中就的MCVS 2017,说明vs2017是与qt兼容的。当然也可以用qt creator这一原生IDE。OpenCV版本目前是最新的4.8.0,使用过程中没有什么问题,但是还是安装低版本大概率避免一些玄学问题。

qq_45306739的博客 3350

Struts原理、开发及项目实施

Struts原理、开发及项目实施Holen 2002-9-121、 摘要2、 关键词3、 Framework4、 Struts的起源5、 Struts工作原理6、 Struts安装7、 一个实例8、 Struts优缺点9、 Struts项目实施经验10、 总结11、 参考文献1、 摘要本文主要讲述了Struts(以Struts1.0.2为例)的工作原理,安装以及配置方面的问题。然后结合一个实例,详

!Java 4022

论文翻译:Automatic Lesson Plan Generation via Large Language Models with Self-critique Prompting

在本文中,我们利用大型语言模型(LLMs)的理解和生成能力来自动生成定制化的课程计划。这解决了传统计划可能无法充分满足不同教学环境和学生群体的特定需求的常见挑战。我们提出了一个新颖的三阶段过程,包括使用检索增强生成(RAG)逐步生成课程计划的每个关键组成部分,通过LLMs进行自我批评,以及随后的细化。我们使用这种方法为小学2至5年级生成了涵盖80多个主题的数学课程计划。邀请了三位经验丰富的教育工作者制定全面的课程计划评估标准,然后使用这些标准将我们的LLM生成的课程计划与同一主题的实际课程计划进行基准比较。

CSPhD-winston的博客 1101

UltraScale系列底层结构(3)——URAM概述

在UltraScale+™ 器件中,除了我们在常规熟悉的BRAM资源以外,还额外提供了URAM(UltraRAM)资源。 UltraRAM 是一种单时钟同步操作的高密度存储器,每个 UltraRAM 块可存储 288 Kb 数据,配置为 4K x 72 位的存储单元,其容量是 Block RAM 的八倍。虽然 UltraRAM 内部使用单端口存储单元,但通过在一个时钟周期内顺序执行端口 A 和端口 B 的操作,实现了双端口功能。

apple_53311083的博客 2833

gogcli Gmail 加密备份实战指南:gog backup gmail push 的分片、断点续传与 Checkpoint 机制

本文以 gogcli 的 `gog backup gmail` 命令族为核心,系统讲解如何将 Gmail 邮箱中的标签与原始 MIME 消息导出为**age 加密、gzip 压缩的 JSONL 分片**并推送到私有 Git 仓库。你将掌握 `gog backup gmail push` 的全部核心参数(分片大小、缓存、断点续传、Checkpoint 推送、查询过滤等),理解消息分片按月份分桶、本地

gitblog_00890的博客 756

YOLOv11 结合 BiFormer 注意力:打造多场景高精度检测模型实战教程

注册BiFormer模块(若代码未自动注册)# 加载自定义配置的YOLOv11模型。

know_F0727的博客 251

Struts开发之工具篇

好多开发人员会抱怨Struts开发难,框架设计不好,受到现有好多框架(WebWork)的挑战,当然作为一个经典的MVC框架,并且有相当多的开发人员,Struts的开发有自己独到的优点,下面我们将看看如何去开发一个Struts应用,在这里我们拟定做一个留言版的应用,包含一些功能:注册用户、留言、查看、修改等等。1 业务原型流程:要了解业务情况,简单的就是进行业务流程的建模。好多工具提供基于S

linux_china的专栏 2719

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Struts2框架核心特性与安全开发实践

MVC框架通过模型(Model)-视图(View)-控制器(Controller)的分离架构,为Web应用开发提供标准化解决方案。Struts2作为Java EE领域主流MVC框架,其核心价值在于拦截器机制和OGNL表达式引擎,前者实现AOP编程范式,后者简化数据绑定流程。在安全开发实践中,需特别注意防范OGNL注入和XSS攻击等常见漏洞,通过禁用动态方法调用、限制静态方法访问等配置策略提升系统安全性。本文以Struts2为例,详解拦截器栈配置、Action设计规范等工程实践,帮助开发者构建高效安全的企业级

weixin_28481133的博客 330

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

上一篇: 关于struts中使用Tiles的初级步骤【非转载】
下一篇: Win Server2003常见问题的解决然方案
无尽之眼
博客等级 码龄25年 0粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值