在项目开发中,我们有时会使用到Struts,它是一个开源框架,主要就是实现了MVC设计模式,使用此框架能够提高程序的规范,开发效率也会得到提高,那struts怎么引入?下面来我们就来给大家讲解一下。
在项目中引入Struts2的过程如下:右键项目->Myeclipse->Project Facets->Install Apache Struts (2.X) Facet得到下图界面:
直接点Finish即可,也可以点击Next
引入之后就可以在项目中使用Struts2了。引入之后我们可以看到src目录下多了一个struts.xml的配置文件以及web.xml也发生了一些变化,这些将会是实现Struts的核心配置文件。
struts如何上传文件?
文件上传是指将本地文件上传到服务器的指定目录下。使用 Struts2 框架进行文件上传时,首先需要对 form 表单进行设置,将其 enctype 属性设置为 multipart/form-data,method 属性设置为 post,并在
文件上传页面的示例代码如下所示:
<s:form action ="xxx" method ="post" enctype = "Multipart/form-data"> <s:file name ="xxx" label = "xxx" /> <s:submit value ="上传"/> </s:form>
在上述代码中,
1)application/x-www-form-urlencoded
该值为默认的编码方式,它只处理表单域中的 value 属性,采用这种编码方式的表单会将表单域的值处理成 URL 编码方式。这种编码方式按 ISO-8859-1 的编码方式将表单上传到服务器,只是此种编码方式上传不了文件。
2)multipart/form-data
这种编码方式会以二进制流的方式处理表单数据,并且它会把文件域指定文件的内容也封装到请求参数中。在进行文件上传时,采用的就是此种方式。
3)text/plain
主要作用是直接通过表单发送邮件,目前已不再采用。
设置完 form 表单后,还需要在 Action 类中编写相应的代码。文件上传 Action 类的示例代码如下所示:
public class FileUploadAction extends ActionSupport { private File xxx; // 用户上传的文件 private String xxxContentType; //上传文件的类型 private String xxxFileName; //上传文件的名称 //此处省略三个属性的getter和setter方法 public String execute() throws Exception { //此处省略具体执行的方法 return SUCCESS; } }
在上述代码中,包括三个类型的属性,具体如下。
File 类型的属性 xxx:该属性用于指定上传文件的内容。这里将该属性假设指定为 xxx。
String 类型的属性 xxxFileName:该属性名称必须为 xxxFileName,其中 xxx 表示 File 类型的属性名称,该属性用于指定上传文件名。
String 类型的属性 xxxContentType:该属性名称必须为 xxxContentType,其中 xxx 表示 File 类型的属性名称,该属性用于指定上传文件的文件类型。
需要注意的是,上述代码中的 xxx 指 JSP 页面中 file 标签的名字。
最后,在 struts.xml 中需要对 Action 进行配置,其配置方式与其他 Action 的配置相似,只是一般要在 Action 的配置中加入文件过滤拦截器 fileUpload。fileUpload 拦截器在 struts-default 中已经配置,使用时需要重新配置。struts.xml 配置信息的示例代码如下所示:
<package name="struts2" extends="struts-default" namespace="/" > <action name="xxx" class="com.mengma.xxx"> <result name="success">/result.jsp</result><!--返回结果--> <interceptor-ref name="defaultStack"><!--引用拦截器--> <param name="maximumSize">4194304</param><!-- 设置每一个action允许的上传文件的大小 --> <param name="allowedExtensions">bmp,txt</param><!-- 设置上传文件允许的后缀名,多个使用逗号分开 --> <param name="fileUpload.allowedTypes"> text/plain,application/msword,image/jpeg </param><!--设置上传允许的文件的mimeType类型,多个使用逗号分开--> </interceptor-ref> </action> </package>
在上述配置代码中,使用了 fileUpload 的 maximumSize、allowedExtension 和 allowedTypes 三个参数,分别对上传文件进行了限制。
其中 maximumSize 用于指定允许上传文件的文件大小,单位是字节;allowedExtension 用于指定上传文件的扩展名;allowedTypes 用于指定允许上传文件的类型,当有多个文件类型时,用逗号隔开即可。
按照以上的方法我们就可以将struts文件上传上去了,在文件上传的时候,我们要注意文件大小,以防文件太大影响上传效果!最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。
推荐阅读: