兩種方法:1.保存到數據庫后從數據庫讀取加載
2.保存到服務器本地后讀取加載
兩種graphicImage組件:jsf的和seam的
第二種方法頁面只能用seam的graphicImage組件,且不支持gif格式
第一種方法保存到數據庫里的是url地址
第二種方法保存到數據庫里的是byte數組
Entity:
@SuppressWarnings("serial")
@Entity
public class UserPicture implements Serializable
{
private Integer id;
private String name;
private String url;
private byte image[];
@Id
@GeneratedValue
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public byte[] getImage() {
return image;
}
public void setImage(byte[] image) {
this.image = image;
}
}
Action:
@SuppressWarnings("serial")
@Name("pictureHome")
public class PictureHome extends EntityHome<UserPicture>
{
@DataModel
List<UserPicture> userPictureList;
@SuppressWarnings("unchecked")
@Factory("userPictureList")
public void getUpList() {
userPictureList = this.getEntityManager().createQuery("from UserPicture").getResultList();
}
public void save(ByteArrayInputStream data,String fileName,String userName) {
String fileType = fileName.substring(fileName.lastIndexOf(".")+1);
String fileUrl = "C://userPicture/" + userName + "." + fileType;
File file = new File(fileUrl);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
FileOutputStream fos = new FileOutputStream(file);
Integer ch = 0;
while ((ch=data.read())!=-1) {
fos.write(ch);
baos.write(ch);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.instance.setUrl(fileUrl);
this.instance.setImage(baos.toByteArray());
this.persist();
}
}
頁面:
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:s="http://jboss.com/products/seam/taglib"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:rich="http://richfaces.org/rich" template="layout/template.xhtml">
<ui:define name="body">
<rich:panel>
<h:form>
<f:facet name="header">pictureList</f:facet>
<div class="results"><h:outputText value="No picture exists"
rendered="#{empty userPictureList}" /> <h:dataTable id="upList"
var="p" value="#{userPictureList}"
rendered="#{not empty userPictureList}">
<h:column>
<f:facet name="header">Id</f:facet>
<h:outputText value="#{p.id}" />
</h:column>
<h:column>
<f:facet name="header">Name</f:facet>
<h:outputText value="#{p.name}" />
</h:column>
<h:column>
<f:facet name="header">picture</f:facet>
<h:graphicImage url="#{p.url}" />
</h:column>
<h:column>
<f:facet name="header">picture</f:facet>
<s:graphicImage value="#{p.image}"></s:graphicImage>
</h:column>
</h:dataTable></div>
</h:form>
</rich:panel>
<div class="actionButtons"><s:button id="done"
value="Create picture" view="/picture.xhtml" /></div>
</ui:define>
</ui:composition>
分享到:
相关推荐
- **图片缩放**: 传统的缩放方法可能导致图像失真,而Seam Carving可以在不明显改变视觉效果的情况下改变图像尺寸。 - **UI设计**: 可用于自适应界面布局,根据屏幕尺寸动态调整元素大小。 - **视频处理**: 应用于...
**JBoss Seam 学习资源概述** JBoss Seam 是一个开源的应用程序框架,它整合了JavaServer Faces (JSF)、Enterprise JavaBeans (EJB)、Java Persistence API (JPA) 和其他Java EE技术,旨在简化开发过程,提高开发...
### Seam框架核心知识点详解 #### 一、Seam框架简介 Seam,全称为JBoss Seam,是一款基于Java EE 5的技术栈构建的应用框架。它通过整合JSF(JavaServer Faces)与EJB 3.0(Enterprise JavaBeans 3.0)组件,并充分...
**JBoss Seam组件中文手册** **一、Seam框架概述** Seam是一个开源的企业级Java框架,由JBoss公司开发,旨在简化Java EE应用程序的开发。它将多种技术如JavaServer Faces (JSF),Java Persistence API (JPA),EJB 3...
Seam Carving是一种图像内容感知的尺寸调整方法,它能够在保持图像主要结构...加载测试图像,编译并运行代码,就可以看到Seam Carving效果。通过调试和修改参数,你可以调整接缝的选择策略,以适应不同的图像和需求。
"为Seam做好准备"这个标题暗示我们即将探讨的是关于Seam框架的入门与准备工作。Seam是一个Java EE集成框架,它将JavaServer Faces(JSF)、Java Persistence API(JPA)、Enterprise JavaBeans(EJB)3.0以及其他...
《Seam in Action》是一本专门探讨Seam框架的书籍,该书分为中文和英文两个版本,对于初学者和有经验的开发者来说都是一个宝贵的资源。Seam是一个强大的Java EE框架,它集成了多种技术,如JavaServer Faces (JSF)、...
Seam Security是针对Java Web应用程序的安全框架,它是JBoss Seam项目的一部分,提供了全面的安全解决方案,包括身份验证、授权和身份管理等功能。Seam Security以易于配置和使用为特点,允许开发者快速设置应用程序...
根据提供的信息,我们可以推断出这是一本关于 Seam 框架的专业书籍,书名为《Seam in Action》,作者为 Dan Allen 和 Manning 出版社出版。本书主要讲解了 Seam 框架在 Java EE 3 环境中的应用与开发实践。接下来将...
### Seam参考手册中文版知识点概览 #### 一、Seam简介及基本概念 ##### JBoss Seam概述 - **Seam**是JBoss家族中的一员,它是一个建立于Java EE平台之上的开源框架,旨在简化企业级应用的开发过程。 - **版本**: ...
MATLAB源码中的"seamCarving_GUI.m"文件应该是整个程序的主入口,它构建了一个图形用户界面,用户可以通过这个界面加载原始图像,并进行seam carving操作。"browse"功能允许用户选择要处理的图像文件,这通常是.bmp...
### JBoss Seam中文版知识点详解 #### JBoss Seam简介 JBoss Seam是一个强大的企业级应用开发框架,基于Java EE标准,特别强调简化Web应用的开发流程。它通过整合多种技术如JSF、EJB 3.0等,提供了一种更为高效、...
MATLAB_Seam_Carving_seamcarving_ 是一个与图像处理相关的项目,主要涉及到一种称为“seam carving”的技术,这是一种动态图像调整大小的方法,它可以在不改变图像整体视觉效果的情况下,增加或减少图像的宽度和...
### SEAM 中文开发指南知识点概述 #### 一、SEAM 框架简介 - **SEAM**:SEAM 是一个基于 Java EE 的企业级应用框架,它简化了复杂的应用程序开发过程,并且提供了丰富的功能来支持业务逻辑的实现。 - **版本信息**...
SeamCarving是一种图像处理技术,它通过删除或添加垂直或水平的像素“接缝”来改变图像的尺寸,而尽量保持视觉质量。在Matlab中实现SeamCarving算法,可以为图像的无损缩放提供一种有效的方法。下面我们将深入探讨这...
Seam是一个Java EE框架,它将JavaServer Faces(JSF)、Java Persistence API(JPA)、Inversion of Control(IoC)和Enterprise JavaBeans(EJB)等技术融合在一起,为开发复杂的Web应用程序提供了便利。在Seam框架...
Seam框架是一个全面的Java企业级应用开发框架,它整合了JSF(JavaServer Faces)、EJB、CDI(Contexts and Dependency Injection)以及许多其他Java EE技术,为开发者提供了强大的组件模型和丰富的功能,旨在简化...
Seam是一种Java EE框架,它在开发企业级应用程序时提供了高度集成和语境相关的组件模型。这个框架的主要目标是简化复杂性,使开发者能够更高效地构建动态、响应式的Web应用。Seam的核心理念是将不同的技术,如Java...
【JBoss Seam 2.0文档详解】 JBoss Seam 是一个开源的企业级开发框架,它旨在简化Java EE应用的开发过程,特别是在Web和富互联网应用程序(Rich Internet Applications, RIA)领域。Seam 2.0是其重要的版本,提供了...
Seam 是一种业级 企 Java 的应规用程序框架。它的灵感源自下列原 : 只有一种“工具” Seam为 应 业务业业 义 种统 组 你的 用程序中所有的 定 了一 一的 件模型。 Seam组件可能是 态义 关关 态 有状 的,包含与几...