`
touchinsert
  • 浏览: 1329196 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

使用Eclipse 3.1 WST编写Struts文件上传

阅读更多

可以在eclipse.org网站上下载WST with Eclipse3.1文件,该文件包括Eclipse3.1和WST以及它所需要的所有插件,基本上不用装其他插件了。

解包下载的文件后,建立新项目:Dynamic Web Project,这是需要配置调试用的Web服务器。我使用Tomcat 5.5,填写Tomcat 5.5的安装目录。

将Struts所需要的lib和Tld文件拷贝到WEB-INF目录

在WEB-INF/config目录里编写struts-config.xml如下

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

<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">

<!--
This is the Struts configuration file of Colimas
Created By: Zhao Lei
Created Date:2005/06/14
Last Modified By: Zhao Lei
Last Modified Date:2005/07/25
-->


<struts-config>
<!-- ================================================ Form Bean Definitions -->

<form-beans>
<!--30 Upload File formbean-->
<form-bean
name="UploadForm"
type="com.nova.colimas.web.form.UploadForm"/>

</form-beans>


<!-- ========================================= Global Exception Definitions -->

<global-exceptions>
<!-- sample exception handler
<exception
key="expired.password"
type="app.ExpiredPasswordException"
path="/changePassword.jsp"/>
end sample -->
</global-exceptions>


<!-- =========================================== Global Forward Definitions -->

<global-forwards>
<!-- Default forward to "Welcome" action -->
<!-- Demonstrates using index.jsp to forward -->
<forward
name="index"
path="/index.do"/>
</global-forwards>


<!-- =========================================== Action Mapping Definitions -->

<action-mappings>
<!-- Default "Welcome" action -->
<!-- Forwards to Welcome.jsp -->
<action path="/index"
forward="/pages/index.jsp"/>

<!-- 45 File Load Action-->
<action path="/protect/FileLoadAction"
type="com.nova.colimas.web.action.protect.FunctionImportAction"
name="UploadForm"
scope="request">
<forward name="success" path="/index.do"/>
</action>



</action-mappings>


<!-- ============================================= Controller Configuration -->

<controller
processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>


<!-- ======================================== Message Resources Definitions -->
<message-resources parameter="resources.template" />
<!-- =============================================== Plug Ins Configuration -->

<plug-in className="org.apache.struts.tiles.TilesPlugin" >

<!-- Path to XML definition file -->
<set-property property="definitions-config"
value="/WEB-INF/config/tiles-defs.xml" />
<!-- Set Module-awareness to true -->
<set-property property="moduleAware" value="true" />
</plug-in>


<!-- =================================================== Validator plugin -->

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/WEB-INF/config/validator-rules.xml,/WEB-INF/config/validation.xml"/>
</plug-in>

</struts-config>

修改Web.xml将struts-config.xml填进去:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>
colimas</display-name>
<display-name>Component Library Management System</display-name>

<servlet>
<!-- Standard Action Servlet Configuration (with debugging) -->
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/config/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<!-- Standard Action Servlet Mapping -->
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>welcome.jsp</welcome-file>
</welcome-file-list>

<jsp-config>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
<taglib-location>/WEB-INF/tld/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/fmt</taglib-uri>
<taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/sql</taglib-uri>
<taglib-location>/WEB-INF/tld/sql.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/xml</taglib-uri>
<taglib-location>/WEB-INF/tld/x.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://java.sun.com/jsp/jstl/functions</taglib-uri>
<taglib-location>/WEB-INF/tld/fn.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-bean</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-html</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-logic</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-tiles</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-nested</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-nested.tld</taglib-location>
</taglib>
</jsp-config>

</web-app>
编写welcome.jsp和/pages/index.jsp文件

<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<logic:redirect forward="index"/>
<%--
Redirect default requests to Welcome global ActionForward.
By using a redirect, the user-agent will change address to match the path of our Welcome ActionForward.

--%>

index.jsp

<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>

<html:html>
<Title>Upload Files</Title>
<body>
<html:form action="/protect/FileLoadAction.do" enctype="multipart/form-data">
<html:file property="theFile"/>
<html:submit/>
</html:form>
<bean:write name="UploadForm" property="theText"/>
</body>
</html:html>

注意红字属性必须填写,否则会出错。该<html:file>只能上传一个文件,如果要上传多个只能

<html:file property="theFile1"/>
<html:file property="theFile2"/>
<html:file property="theFile3"/>
不支持无定数文件上传。

编写Action和ActionForm

/*
* Created on 2005/07/21
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.nova.colimas.web.action.protect;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.upload.FormFile;

import com.nova.colimas.common.doc.*;
import com.nova.colimas.web.form.UploadForm;

/**
* @author tyrone
*
*/
public class FunctionImportAction extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception{
/**
* 1 File Upload the file
* 2 get the value from WordProcess
* 3 Analysis
* 4 show to user
*/
if (form instanceof UploadForm){
String text=null;
UploadForm theForm = (UploadForm ) form;
FormFile file = theForm.getTheFile();//Ž擾
if(file.getFileName().endsWith("doc")){
//使用本站提供的Word和Excel分析类可以提取文本字符串,上传文件内容将显示在jsp网页上

text=WordProcess.run(file.getInputStream());
}else if(file.getFileName().endsWith("xls"))
text=ExcelProcess.run(file.getInputStream());
else
text=TextProcess.run(file.getInputStream());
theForm.setTheText(text);

}
return mapping.findForward("success");
}
}

/*
* Created on 2005/06/25
* @Author Tyrone
* Save the upload file info and stream
* used by struts FormFile
*/
package com.nova.colimas.web.form;

import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.*;
/**
* @author tyrone
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class UploadForm extends ActionForm {

private FormFile theFile;
private String theText;


/**
* @return Returns the theFile.
*/
public FormFile getTheFile() {
return this.theFile;
}
/**
* @param theFile The theFile to set.
*/
public void setTheFile(FormFile property1) {
this.theFile = property1;
}
public void Reset() {
this.theFile=null;
this.theText="";
return;
}
/**
* @return Returns the theText.
*/
public String getTheText() {
return theText;
}
/**
* @param theText The theText to set.
*/
public void setTheText(String property1) {
this.theText = property1;
}

}

调试welcome.jsp。eclipse会启动Tomcat,在Console里打印启动log,其中会出现:web.xml cannot be found

这个错误可以忽略,不会有问题。

选择文件,点击index.jsp的submit。程序会跳转到FunctionImportAction 。如果在FunctionImportAction 设断点,可以停到断点出。非常方便。


分享到:
评论

相关推荐

    org.eclipse.wst.jsdt.core_1.1.102.jar

    1、找到eclipse插件文件plugins 类似org.eclipse.wst.jsdt.core_version.jar备份 2、把此文件覆盖插件文件plugins原来的文件。 3、删除工作空间下文件:workspace/.metadata/.plugins/org.eclipse.wst.jsdt.core 4、...

    org.eclipse.wst.web.prefs

    Eclipse 新建WEB工程的WebContent目录设置默认WebRoot,和设置编译class默认输出WebRoot\WEB-INF\classes https://blog.csdn.net/love20yh/article/details/81038250

    org.eclipse.wst.jsdt.core.source_1.1.101.v201108151912.jar

    javascript development tools 代码

    android requiringorg.eclipse.wst.sse.ui

    在Android开发过程中,可能会遇到与"requiringorg.eclipse.wst.sse.ui"相关的错误提示,这通常是由于Eclipse集成开发环境(IDE)中缺少或配置不正确的插件导致的。`org.eclipse.wst.sse.ui`是Eclipse Web Standard ...

    wst eclipse插件(共5)之五

    wst eclipse插件 org.eclipse.wst.javascript.ui org.eclipse.wst.sse.ui eclipse

    eclipse安装ADT时遇到org.eclipse.wst.sse.core 0.0.0

    ### Eclipse安装ADT时遇到“org.eclipse.wst.sse.core 0.0.0”问题解析及解决方案 在学习和实践Android开发的过程中,不少初学者可能会遇到在Eclipse中安装ADT(Android Development Tools)插件时出现问题的情况,...

    eclipse中自动修改资源文件解决中文问题

    本文将详细探讨如何在Eclipse中自动修改资源文件以解决中文问题,并介绍相关插件的使用。 首先,了解Eclipse的编码设置至关重要。Eclipse的项目编码可以在项目的属性设置中进行更改。通过右键点击项目 -&gt; 属性 -&gt; ...

    wst eclipse插件(共5)之四

    wst eclipse插件 org.eclipse.wst.javascript.ui org.eclipse.wst.sse.ui eclipse

    wst eclipse插件(共5)之三

    wst eclipse插件 org.eclipse.wst.javascript.ui org.eclipse.wst.sse.ui eclipse

    wst eclipse插件(共5)之二

    wst eclipse插件 org.eclipse.wst.javascript.ui org.eclipse.wst.sse.ui eclipse

    ECLIPSE+STRUTS开发

    本文将详细介绍如何在Eclipse中配置并使用Struts2进行开发。 #### 二、运行环境搭建 在Eclipse中配置Struts2,首先需要搭建以下运行环境: 1. **JDK6安装**:这是Java开发的基础,确保系统中已安装JDK6,且环境...

    wst eclipse插件(共5)之一

    wst eclipse插件 org.eclipse.wst.javascript.ui org.eclipse.wst.sse.ui eclipse

    eclipse配置文件

    5. `org.eclipse.wst.common.component`:这是一个Web项目特有的配置文件,用于指定项目中的源代码路径、构建路径、库依赖等。如果这个压缩包来自一个Web项目,那么这个文件可能是不可或缺的部分。 6. 其他`.prefs`...

    eclipse插件 - jQuery

    我们在编写js的时候,如果采用了jquery框架,当然很希望Eclipse能帮我们完成代码自动完成的功能了,但Eclipse默认只是支持js的代码自动完成,利用这个插件,可以让Eclipse支持jquery的代码自动完成功能(前提:...

    org.eclipse.wst.common.project.facet.core.xml

    图书管理系统

    eclipse中jquery插件配置

    将生成的文件替换旧 org.eclipse.wst.jsdt.core_version.jar 的文件。 7. 删除目录 删除目录工作区/.metadata/.plugins/org.eclipse.wst.jsdt.core。 8. 启动 Eclipse 重新启动 Eclipse。 9. 测试 jQuery 提示 ...

    eclipse-neon4

    2. `org.eclipse.wst.jsdt.ui_2.0.200.v201612151739.jar`:这是 JSDT 的用户界面组件,包含了编辑器、调试器和代码完成等功能,让开发者能够高效地编写和测试 JavaScript 代码。 3. `org.eclipse.wst.jsdt.core_...

    Eclipse 插件下载专区lousingvu专用通道 插件 H

    描述提到由于插件文件较大,因此被分成了多个部分进行上传,这些部分通过文件名末尾的标号进行区分。同时,发布者强调了对编程爱好者开放,并且设置了较低的获取门槛。 Eclipse是一个开源的Java IDE,但同时也支持...

    eclipse编辑JSP及JS页面

    标题中的“eclipse编辑JSP及JS页面”指的是使用Eclipse IDE进行Java Server Pages (JSP) 和JavaScript文件的开发工作。Eclipse是一款强大的集成开发环境,广泛用于Java应用程序的编写,同时也支持JSP和JavaScript的...

    把外部项目导入eclipse

    在 Eclipse 安装文件中的 `.setting` 文件夹中的 `org.eclipse.wst.common.project.facet.core.xml` 文件中,修改以下内容: ```xml ... ... ``` 解决端口号已经使用的问题 在 Tomcat 的配置文件中,修改...

Global site tag (gtag.js) - Google Analytics