在搭建好的基础上需要做很多东西,比如使用json交换数据,今天实现了一个最简单的例子
1.编写实体类
Image
package com.ssh.beans;
public class Image {
private int id;
private String imagePath;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getImagePath() {
return imagePath;
}
public void setImagePath(String imagePath) {
this.imagePath = imagePath;
}
}
编写对应的Image.hbm.xml
<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping package="com.ssh.beans">
<class name="Image" table="image">
<id name="id" column="id">
<generator class="native"></generator>
</id>
<property name="imagePath" column="imagepath" type="java.lang.String"
not-null="true" length="100"></property>
</class>
</hibernate-mapping>
2.编写dao类
dao接口:
package com.ssh.dao;
import java.util.List;
import com.ssh.beans.Image;
public interface ImageDao {
void saveObject(Object obj);
List<Image> getList();
}
daoImpl类
package com.ssh.daoImpl;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.ssh.beans.Image;
import com.ssh.dao.ImageDao;
public class ImageDaoImpl extends HibernateDaoSupport implements ImageDao {
@Override
public void saveObject(Object obj) {
// TODO Auto-generated method stub
getHibernateTemplate().save(obj);
}
@Override
public List<Image> getList() {
// TODO Auto-generated method stub
return this.getHibernateTemplate().find("from Image");
}
}
3.业务逻辑类
接口:
package com.ssh.service;
import java.util.List;
import com.ssh.beans.Image;
import com.ssh.forms.UploadImageForm;
public interface ImageManager {
boolean uploadImage(UploadImageForm image);
List<String> ListImage();
}
实现类
package com.ssh.serviceImpl;
import java.util.ArrayList;
import java.util.List;
import com.ssh.beans.Image;
import com.ssh.dao.ImageDao;
import com.ssh.forms.UploadImageForm;
import com.ssh.service.ImageManager;
public class ImageMangerImpl implements ImageManager {
private ImageDao dao;
@Override
public boolean uploadImage(UploadImageForm image) {
// TODO Auto-generated method stub
return false;
}
public ImageDao getDao() {
return dao;
}
public void setDao(ImageDao dao) {
this.dao = dao;
}
@Override
public List<String> ListImage() {
// TODO Auto-generated method stub
List<String> imagePaths = new ArrayList<String>();
List<Image> images = dao.getList();
for (int i = 0; i < images.size();i++)
{
imagePaths.add(images.get(i).getImagePath());
}
return imagePaths;
}
}
4.action类
package com.ssh.action;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.opensymphony.xwork2.ActionSupport;
import com.ssh.service.ImageManager;
public class ImageAction extends ActionSupport{
/**
*
*/
private static final long serialVersionUID = 1L;
private ImageManager imageManger;
private String imagePath;
private String imagePaths;
public ImageManager getImageManger() {
return imageManger;
}
public void setImageManger(ImageManager imageManger) {
this.imageManger = imageManger;
}
public String getImagePath() {
return imagePath;
}
public void setImagePath(String imagePath) {
this.imagePath = imagePath;
}
public String getImagePaths() {
return imagePaths;
}
public void setImagePaths(String imagePaths) {
this.imagePaths = imagePaths;
}
public Map responseJson;
public Map getResponseJson() {
return responseJson;
}
public void setResponseJson(Map responseJson) {
this.responseJson = responseJson;
}
public String ListImage()
{
Map<String, Object> map = new HashMap<String, Object>();
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
List<String> im = imageManger.ListImage();
for ( int i = 0; i < im.size(); i++) {
Map<String, Object> m = new HashMap<String, Object>();
m.put("id", i);
m.put("imagePath", im.get(i));
list.add(m);
}
map.put("rows", list);
map.put("totalCont", im.size());
this.setResponseJson(map);
return SUCCESS;
}
}
5.配置application-context.xml
注册DAO类
<bean id="ImageDao" class="com.ssh.daoImpl.ImageDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
注册业务逻辑类
<bean id="ImageManager" class="com.ssh.serviceImpl.ImageMangerImpl">
<property name="dao">
<ref bean="ImageDao" />
</property>
</bean>
注册action类
<bean id="ImageBean" class="com.ssh.action.ImageAction">
<property name="imageManger">
<ref bean="ImageManager" />
</property>
</bean>
6.配置struts2.xml
为了支持json在package后添加以下代码
<result-types>
<result-type name="json" class="org.apache.struts2.json.JSONResult"/>
</result-types>
<interceptors>
<interceptor name="json" class="org.apache.struts2.json.JSONInterceptor"/>
</interceptors>
配置action
<action name="listimage" class="ImageBean" method="ListImage">
<result type="json">
<param name="root">responseJson</param>
</result>
</action>
7.效果图: