struts怎么把相关联的信息打印出来?struts如何下载文件?

在众多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>

2)创建 Action

在 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如何下载文件?.jpg

单击下载页面的超链接后,浏览器的显示结果如图所示。

1.jpg

这样就完成了struts文件的下载,在工作中我们要是遇到struts下载文件可以参考以上这些步骤。最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。

推荐阅读:

JAVA数据库怎么分模块?JAVA数据库分库实例

java线程池面试题有哪些?java线程池常见面试题

json格式如何转换成exe?json日期格式如何解决?