如何在Struts 2标记(href)中设置Struts 2对象

时间:2013-12-13 03:57:57

标签: java jsp struts2 ognl struts-tags

我有File对象,看起来像这样

public class FileTO implements Serializable{
private String fileName;
private String filePath;

public String getFileName() {
    return fileName;
}

public void setFileName(String fileName) {
    this.fileName = fileName;
}

public String getFilePath() {
    return filePath;
}

public void setFilePath(String filePath) {
    this.filePath = filePath;
}

当然我的struts动作响应中有很多其他对象,我在这里没有列出。 操作完成后,将使用其所在文件的实际路径填充filePath,以便可以下载该文件。我想在<s:a>标记中显示fileName和filePath。

目标是让href指向filePath。我尝试使用OGNL,即#,%{},$(),似乎没有人正确显示链接。

例如:

<s:a href="?????????"> Click to the get the File </s:a>

2 个答案:

答案 0 :(得分:1)

问题有点不清楚,但根据我的理解,您正在寻找s:url代码。

<a href="<s:url value="%{filePath+fileName}"/>">Link</a>

答案 1 :(得分:1)

<s:a href="?????????"> Click to the get the File </s:a>
  1. 如果文件位于可访问的文件夹中:

    <s:a href="http://server.with.files.com/path/to/file/fileName.txt"> 
        Click to the get the File 
    </s:a>
    
  2. 如果文件位于受保护,无法访问,或位于Web应用程序内部或来自数据库等的文件夹中......您应调用Action(或Servlet,如果不在Struts2中) ),应该读取文件,并返回Stream结果。读:

  3. 要理解OGNL语法,请read this answer