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脚本和标签:实现循环和分支逻辑

综合能源系统多时间尺度优化调度!诸多创新点让你抓住审稿人的心!

主要介绍综合能源系统的设备组成结构,并针对屋顶光伏系统、冷-热-电联供系统中的燃气轮机、燃气锅炉、光伏溴化锂制冷机、卡琳娜余热发电、中央空调系统,以及外网交互系统的配电网与天然气管网交互关系进行数学建模。1) 源-荷-储协同调度:研究屋顶光伏、燃气轮机、燃气锅炉等源侧设备,中央空调、电-热-冷负荷、可平移电负荷、可削减温控负荷等负荷侧资源,以及储能系统、电动汽车等储能侧设备的协同调度,以提高风光消纳能力,满足社会能源需求。通过电转热、电转冷、电转气等多能耦合方式,可进一步促进可再生能源的应用与发展。

weixin_48747334的博客 1489

[转] 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

LlamaIndex 入门实战

LlamaIndex是一个“数据框架”,用于帮助构建LLM应用程序。它提供了各种工具,包括数据连接器,用于摄取现有数据源和数据格式(API,PDF,文档,SQL等),以及用于将数据结构化(索引,图形)以便与LLM轻松使用的方式。此外,LlamaIndex还提供了高级的检索/查询接口,可以输入任何LLM输入提示,并返回检索到的上下文和增强知识的输出。它还允许与外部应用程序框架(如LangChain,Flask,Docker,ChatGPT等)轻松集成。

AIGC搞起 1万+

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

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

Dick Winters的Java专栏 1613

从车机到广告屏:CS5523芯片在5大显示场景的应用方案全解析

本文全面解析了CS5523芯片在车载显示、数字广告机、医疗设备和工业HMI等五大场景的应用方案。作为高性能MIPI转eDP芯片,CS5523凭借出色的兼容性和低功耗特性,成为国产替代方案的优选。文章详细介绍了芯片架构、核心技术及实际应用中的设计要点,为工程师提供全面的技术参考。

julia4scientist的博客 903

STM32F103跑LVGL,用DMA加速刷屏,800*480大屏也能丝滑

本文详细介绍了如何在STM32F103芯片上通过DMA加速和内存优化,实现800*480大屏的LVGL流畅运行。通过FSMC+DMA硬件架构优化、双缓冲机制和LVGL参数调优,显著提升了界面刷新率和响应速度,适用于嵌入式GUI开发中的高性能需求场景。

weixin_30357231的博客 376

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

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

445

Cesium进阶学习四、shadertoy(着色器)

Cesium进阶学习着色器

程迷学习的博客 4322

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

毕业论文管理系统的设计与实现

毕业论文工作是高等学校本科培养阶段的一个重要环节。目前论文管理工作存在着许多问题,例如人工管理极为不便;学生对论文所要撰写的内容并不十分了解,与指导老师的沟通非常不便;老师的指导监督也很难完全到位;手工评审的效率低等。而现有的一些毕业论文信息管理或答辩评审系统只是实现了部分网上交流和评审管理的功能,在答辩评审的自测和项目指标权重等方面都存在着一定的不足。因此,本文设计的毕业论文管理系统采用B/S模式开发。其中,Browser层使用JSP技术开发;

wqq_992250277的博客 3183

Qt QCustomPlot 图形库详解及使用

QCustomPlot 是一个开源的 Qt C++ 库,专门用于创建数据图表。易于集成到 Qt 项目中。支持多种图表类型,如折线图、散点图、条形图等。提供丰富的交互功能,如缩放、平移、选择和拖动。高度可定制,支持图形的各种样式设置。// 添加第一条曲线i < 101;++i) {// 设置曲线颜色// 添加第二条曲线i < 101;++i) {// 设置曲线颜色// 设置散点样式// 添加图例。

MusicScore的博客 764

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

1.嵌入式控制器EC学习,编译环境搭建

工欲善其事,必先利其器。 在学习EC相关知识之前,首先需要完成EC代码编译环境的搭建,需要如下内容: Keil C51(用于EC中C代码的编译器环境) EC源代码,我们使用从网上可以下载到的 ITE_V12.4_Update 版的代码为例进行学习 代码编辑器,这个可以根据自己的习惯选择,VS Code或者Source Insight等 Keil C51下载地址: http://www.downcc.com/soft/307131.html 下载完成后请进行破解 EC源代码 ...

qq_30135687的博客 3918

Struts开发之工具篇

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

linux_china的专栏 2719

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

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

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

weixin_28481133的博客 330

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值