使用Struts2 2.2.3,Tomcat 7
当用户从列表中选择名称时,我正在尝试动态显示个人的个人资料信息(姓名,地址等以及照片)。当我使用ajax(dojo)调用时,我无法返回并显示照片。
某些照片保存在数据库中(而不是文件中),因此我想返回并将所有照片显示为图像流。当我向Tomcat发送包含以下内容的页面的非ajax请求时,我可以返回并显示图像流(使用带有流结果的操作):
<img id="photo" src= "" />
<script type="text/javascript">document.getElementById("photo").src = "ProfilePhotoAction?mynumber=" + new Date().getTime();</script>
执行脚本,找到操作,然后返回流。
但是,当我在sx:div中触发包含上述内容的ajax请求时,脚本根本无法执行;我尝试将sx:div的'executeScripts'属性设置为true和false。
我也尝试过以其他方式构建img标签,例如:
<img src= "<s:url action = "ProfilePhotoAction"/>" />
这会产生错误:“无法找到操作或结果/ CHHS /校友/ 没有针对命名空间/校友和操作名称映射的操作。“
在这种情况下,'/ CHHS / alumni'是正确的前缀,但似乎Dojo以某种方式忘记了s:url中指定的动作名称。我确定struts2操作是正确指定和配置的(以及流结果)因为它在非ajax情况下工作(见上文)。
我很欣赏任何可能忽略的线索。