在众多java框架中,struts也是被广泛使用的,它是开源软件,能使开发者能更深入的了解其内部实现机制。那struts怎么把相关联的信息打印出来?下面来我们就来给大家讲解一下。
1.Struts2前台不要传递数组,将参数转化成String进行传递
//1.数组参数 var couponUserListVar = [ { "pdCode": "0" } , { "pdCode": "3" }]; var couponBranchListVar = [ { "branchSequence": "100000007" } , { "branchSequence": "100000093" } , { "branchSequence": "100000010" }; //2.传递转化成String couponUserList: JSON.stringify(couponUserListVar), couponBranchList: JSON.stringify(couponBranchListVar),
2.Struts2将request中的参数全部打印出来
// 1.获取ActionContext对象 ActionContext context = ActionContext.getContext(); // 2.获取参数Map对象 Mapmap = context.getParameters(); // 3.遍历Map集合 Setset = map.keySet(); for (String key : set) { // 表单value值是Object数组,因为存在表单中多值的情况 Object[] values = (Object[]) map.get(key); System.out.println(Arrays.toString(values)); }
struts如何下载文件?
1)创建下载页面
在 struts2Demo06 项目的 WebContent 目录下创建一个名称为 download.jsp 的页面文件,在文件中添加一个用于文件下载的链接,其主要代码如下所示:
<s:a href="simpledownload?filename=test.txt" name="test">test.txt</s:a>
在 com.mengma.action 包中新建一个名称为 SimpleDownLoadAction 的类,该类主要用于处理文件下载的核心操作,其代码如下所示。
package com.mengma.action; import java.io.InputStream; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class SimpleDownLoadAction extends ActionSupport { private String filename; public String getFilename() { return filename; } public void setFilename(String filename) { this.filename = filename; } // 定义了返回InputStream的方法,该方法作为被下载文件的入口 public InputStream getDownloadFile() { // 获取下载文件名称 String filename = ServletActionContext.getRequest() .getParameter( "filename"); // 定义下载文件路径 String filePath = "/upload/" + filename; // 返回一个流对象 return ServletActionContext.getServletContext() .getResourceAsStream( filePath); } }
3)编写配置文件信息
在 struts.xml 中增加 action 的配置,其代码如下所示:
<action name="simpledownload" class="com.mengma.action.SimpleDownLoadAction"> <result type="stream"> <!--文件类型 --> <param name="contentType">text/plain</param> <!--指定文件名 --> <param name="contentDisposition"> attachment;filename=${filename} </param> <!--输入流 --> <param name="inputName">downloadFile</param> </result> </action>
在上述配置代码中,分别通过 stream 结果类型的属性设置了所要下载文件的类型、名称和输入流。其中 ${filename} 表示在项目运行时,将 action 中的 filename 属性动态地填充在 ${} 中间部分,这样就可以动态地获取所要下载的文件名称。
4)运行项目并查看结果
启动项目后,在浏览器的地址栏中输入地址 http://localhost:8080/struts2Demo06/download.jsp,即可显示如图所示的页面。
单击下载页面的超链接后,浏览器的显示结果如图所示。
这样就完成了struts文件的下载,在工作中我们要是遇到struts下载文件可以参考以上这些步骤。最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。
推荐阅读: