在项目中 我们经常会碰到要输出图片以及查询结果list到页面jsp的情况,单纯的只输出list到jsp倒是很简单。但是要将2者同时输出 ,可能就有点麻烦。
不知道webwork是否提供了这方面的支持。
在这里,我们就用最土的办法来做了。
首先,写1个OutListAction,它有2个方法,一个是getImage(),另一个是getList()。OutListAction extends WebWorkResultSupport 这样子,action就可以return null 了。return null的目的是为了采用response输出图片流.
public class OutListAction extends WebWorkResultSupport {public String getImage() throws IOException {
InputStream in = null;
OutputStream out = ServletActionContext.getResponse().getOutputStream();
ServletActionContext.getResponse().setContentType("image/jpeg");
String strFullPath = ServletActionContext.getServletContext()
.getRealPath("/");
File f = new File(strFullPath + "img//none.bmp");
in = new FileInputStream(f);// 初始化inputStream 默认为img//none.bmp
if (picno != null && !picno.equals("")) {
imageList = dao.getImageByID(picno);
if (imageList != null && imageList.size() > 0) {
Image img = (Image) imageList.get(0);
if (img != null && img.getImage() != null) {
Blob blob = img.getImage();//上面这部分都是通过picno来查询数据中是否有该图片,如果没,就采用默认的图片img//none.bmp来显示在页面。
if (blob != null) {
try {
in = blob.getBinaryStream(); // 更改inputStream
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
try {
byte[] b = new byte[1024];
int i = 0;
while ((i = in.read(b)) > 0) {
out.write(b, 0, i); // 读图片
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (in != null) {
in.close();
if (out != null) {
out.close();
}
}
}
return null;
}
public String getList() {
kindList = dao.getKindName();
}
}
OK! Action写完了!现在我们来看list.jsp
这里要输出图片的话,通过javascript来获取该图片输出流。其代码如下:
<img id ="carimage" width="135" height="120" hspace="2"></td>
<script type = "text/javascript">
var picno ='<ww:property value="top[37]" />';
var url ="getImage.action?picno="+picno;
document.getElementById("carimage").src=url;
</script>
至于list输出就随便输出了!
<ww:iterator value="kindList " status="li">
<ww:property value="#li.count" />
</ww:iterator >
好了,基本上就这样! 不知道大家有没有更好更简单的方法,请指正!
分享到:
相关推荐
2. **输出数据**:处理完数据后,可以将其保存到请求作用域中,然后通过转发或重定向的方式呈现给用户。 #### 五、WebWork JSP标签库介绍 WebWork提供了一套丰富的JSP标签库,可以帮助开发者更高效地构建动态页面...
让我们深入探讨WebWork的核心概念、Action的创建以及如何实现基本的流程控制。 **WebWork核心概念** 1. **Action**: 在WebWork中,Action是业务逻辑的主要载体。它负责接收来自视图层(如JSP)的请求,处理业务...
《WebWork in Action》是一本专注于介绍WebWork框架的书籍,源代码的提供是为了让读者更深入地理解和实践书中的示例。WebWork是一个基于Java的MVC(模型-视图-控制器)框架,用于构建动态Web应用程序。它强调了代码...
WebWork是一个基于Java的开源MVC...通过阅读"WebWork in Action"这本书和研究提供的代码示例,开发者不仅可以掌握WebWork的基本用法,还能学习到如何在实际项目中充分利用它的功能,提升Web应用的开发效率和质量。
根据提供的文件信息,我们可以推断出这是一本关于WebWork框架的书籍介绍。从书名“WebWork in Action”及简短的描述“WebWork in action”,可以看出这本书旨在通过实践的方式教授读者如何使用WebWork这一Java Web...
《Webwork.in.Action》是一本深入探讨Webwork框架的书籍,中文版的出现使得国内开发者能够更方便地学习和理解这一强大的Java web开发框架。Webwork是由一系列组件组成的MVC(Model-View-Controller)框架,它在Java...
webwork in action 第一部分:概貌 第二部分:核心内容 第三部分:内容的显示 第四部分:高级话题
在 WebWork 中,`FilterDispatcher` 是核心过滤器,负责处理请求并将其转发到相应的 Action。在提供的示例中,`<filter>` 和 `<filter-mapping>` 元素定义了名为 `webwork` 的过滤器,它将所有以 `/` 开头的 URL ...
在提供的"Webwork2 Guide.pdf"文档中,你可能会学习到如何安装配置WebWork2环境,创建和运行第一个WebWork应用程序,理解Action和Interceptor的工作原理,以及如何利用WebWork的特性进行表单处理、异常管理和国际化...
webwork in action 中文版
webwork in action 中文版
2. Action:Action是WebWork2.0中的控制器组件,负责处理用户的请求,执行相应的业务逻辑,并返回结果到视图。 3. Interceptors(拦截器):拦截器是WebWork2.0的一个强大功能,允许在Action调用前后插入自定义逻辑...
webwork in action 中文版
Webwork2 提供了强大的数据绑定功能,允许开发者将表单字段直接映射到动作类的属性,极大地简化了输入验证和数据处理。通过注解或XML配置,可以定义数据类型的转换器和验证规则。 **4. 异常处理** Webwork2 具有...
在实际项目中,还需要掌握如何配置Action、结果映射、拦截器、数据校验规则以及如何与视图层(如JSP或FreeMarker)集成等内容。WebWork的学习资料将提供这些知识的详细指导,帮助初学者快速上手。
总结来说,Webwork中的Action调用涉及到类关系的构建、参数的获取与包装、ActionProxy的创建以及Action的执行。通过这一系列过程,Webwork能够高效地处理用户请求,执行业务逻辑,并将结果呈现给用户。理解这些核心...