spring的mvc模式 请教高手spring的mvc模式是什么样子的?如果有例子就更好了!谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给你贴个spring mvc Form的封装 http://swengineer.iteye.com/blog/1103748 看看就知道了 package com.louis.ssh.web.controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.louis.ssh.hibernate.GeneralDao;public interface Controller { public HttpServletRequest getRequest(); public HttpServletResponse getResponse(); public String getPathVariable(String pathVarName); public void dataPrepare(); public GeneralDao getGeneralDao();}package com.louis.ssh.web.controller;import java.lang.reflect.ParameterizedType;import java.util.Map;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.ui.ModelMap;import org.springframework.web.context.request.NativeWebRequest;import org.springframework.web.servlet.HandlerMapping;import com.louis.ssh.hibernate.GeneralDao;@SuppressWarnings("unchecked")public abstract class AbstractController<T> implements Controller { private NativeWebRequest nativeWebRequest; private ModelMap model; private GeneralDao generalDao; private String redirectPath; private Class<T> clazz; public static final String SUFFIX = ".html"; public AbstractController() { } @SuppressWarnings("unchecked") public String getPathVariable(String pathVarName) { HttpServletRequest request = getRequest(); Map<String, String> uriTemplateVariables = (Map<String, String>) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE); if (uriTemplateVariables == null) { return null; } return uriTemplateVariables.get(pathVarName); } public String redirect() { return "redirect:" + redirectPath + SUFFIX; } public void dataPrepare() { } public final HttpServletRequest getRequest() { return nativeWebRequest.getNativeRequest(HttpServletRequest.class); } public final HttpServletResponse getResponse() { return nativeWebRequest.getNativeResponse(HttpServletResponse.class); } public String getRedirectPath() { return redirectPath; } public void setRedirectPath(String redirectPath) { this.redirectPath = redirectPath; } public ModelMap getModel() { return model; } public void setModel(ModelMap model) { this.model = model; } public void setModel(String key, Object value) { if (this.model == null) { model = new ModelMap(); } this.model.put(key, value); } public GeneralDao getGeneralDao() { return generalDao; } @Resource(name = "generalDao") public void setGeneralDao(GeneralDao generalDao) { this.generalDao = generalDao; } public Class<T> getClazz() { if (clazz == null) { clazz = (Class<T>) ((ParameterizedType) this.getClass() .getGenericSuperclass()).getActualTypeArguments()[0]; } return clazz; } protected void addTipText(Object message) { getRequest().getSession().setAttribute("tipText", message); } public NativeWebRequest getNativeWebRequest() { return nativeWebRequest; } public void setNativeWebRequest(NativeWebRequest nativeWebRequest) { this.nativeWebRequest = nativeWebRequest; }}package com.louis.ssh.web.controller;import java.io.Serializable;import javax.annotation.Resource;import org.springframework.ui.ModelMap;import org.springframework.web.bind.WebDataBinder;import org.springframework.web.bind.annotation.InitBinder;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.context.request.NativeWebRequest;import com.louis.ssh.domain.DomainObject;import com.louis.ssh.util.JodaUtil;import com.louis.ssh.util.LowerAndUpperCase;import com.louis.ssh.web.converter.Converter;public abstract class FormController<T extends DomainObject> extends AbstractController<T> { private String formView; private Converter converter; private static final String MODELATTRIBUTE = "domainObject"; public FormController() { String name = LowerAndUpperCase.toLowerCase(getClazz().getSimpleName()); this.formView = name + "/" + name + "form"; setRedirectPath("/" + name + "/" + "list"); } @InitBinder public void initBinder(WebDataBinder binder) { registerPropertyEditor(binder); } public void registerPropertyEditor(WebDataBinder binder) { } @ModelAttribute(MODELATTRIBUTE) public T getDomainObject(NativeWebRequest nativeWebRequest) { setNativeWebRequest(nativeWebRequest); Serializable id = getConverter().converter(getPathVariable("id")); return getDomainObject(id); } @RequestMapping(value = { "/form" + SUFFIX, "/form/{id}" + SUFFIX }, method = RequestMethod.GET) public String setupForm(ModelMap model) { setModel(model); dataPrepare(); return formView; } @RequestMapping(value = { "/form" + SUFFIX, "/form/{id}" + SUFFIX }, method = RequestMethod.POST) public String save(@ModelAttribute(MODELATTRIBUTE)T domainObject) { saveBefore(domainObject); if (domainObject.getId() != null) { domainObject.setUpdateTime(JodaUtil.now()); } getGeneralDao().saveOrUpdate(domainObject); saveAfter(domainObject); return redirect(); } @RequestMapping(value = "/delete/{id}" + SUFFIX) public String delete() { Serializable id = getConverter().converter(getPathVariable("id")); T item = getGeneralDao().get(id, getClazz()); deleteBefore(item); getGeneralDao().delete(item); deleteAfter(); return redirect(); } public void saveBefore(T domainObject) { } public void saveAfter(T domainObject) { } public void deleteAfter() { } public void deleteBefore(T domainObject) { } public String getFormView() { return formView; } public void setFormView(String formView) { this.formView = formView; } public T getDomainObject(Serializable id) { T t = null; if (id != null) { t = getGeneralDao().get(id, getClazz()); } if (t == null) { try { t = getClazz().newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } return t; } public Converter getConverter() { return converter; } @Resource(name = "converter") public void setConverter(Converter converter) { this.converter = converter; }} 要做一个调查问卷系统,望前辈们指教 刚开始学习JaveScript,请各位给点建议 一个很难解决的问题 JSP新手问HTTP Status 500问题! 请问javascript中可以插入JSP的语句吗?<% %> struts+spring+hibernate新手提问 网站传到网上,数据库连接不上 哪里有免费的jsp空间呀? 一个被if...else...困了两天的问题,大虾们救命!!! 请问大家都是怎样进行身份验证的? jquery面包屑 jsp mysql js
package com.louis.ssh.web.controller;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.louis.ssh.hibernate.GeneralDao;public interface Controller { public HttpServletRequest getRequest(); public HttpServletResponse getResponse(); public String getPathVariable(String pathVarName); public void dataPrepare(); public GeneralDao getGeneralDao();}
package com.louis.ssh.web.controller;import java.lang.reflect.ParameterizedType;
import java.util.Map;import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.springframework.ui.ModelMap;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.servlet.HandlerMapping;import com.louis.ssh.hibernate.GeneralDao;@SuppressWarnings("unchecked")
public abstract class AbstractController<T> implements Controller { private NativeWebRequest nativeWebRequest;
private ModelMap model;
private GeneralDao generalDao;
private String redirectPath;
private Class<T> clazz; public static final String SUFFIX = ".html"; public AbstractController() {
} @SuppressWarnings("unchecked")
public String getPathVariable(String pathVarName) {
HttpServletRequest request = getRequest();
Map<String, String> uriTemplateVariables = (Map<String, String>) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
if (uriTemplateVariables == null) {
return null;
}
return uriTemplateVariables.get(pathVarName);
} public String redirect() {
return "redirect:" + redirectPath + SUFFIX;
} public void dataPrepare() {
} public final HttpServletRequest getRequest() {
return nativeWebRequest.getNativeRequest(HttpServletRequest.class);
} public final HttpServletResponse getResponse() {
return nativeWebRequest.getNativeResponse(HttpServletResponse.class);
} public String getRedirectPath() {
return redirectPath;
} public void setRedirectPath(String redirectPath) {
this.redirectPath = redirectPath;
} public ModelMap getModel() {
return model;
} public void setModel(ModelMap model) {
this.model = model;
} public void setModel(String key, Object value) {
if (this.model == null) {
model = new ModelMap();
}
this.model.put(key, value);
} public GeneralDao getGeneralDao() {
return generalDao;
} @Resource(name = "generalDao")
public void setGeneralDao(GeneralDao generalDao) {
this.generalDao = generalDao;
} public Class<T> getClazz() {
if (clazz == null) {
clazz = (Class<T>) ((ParameterizedType) this.getClass()
.getGenericSuperclass()).getActualTypeArguments()[0];
}
return clazz;
} protected void addTipText(Object message) {
getRequest().getSession().setAttribute("tipText", message);
} public NativeWebRequest getNativeWebRequest() {
return nativeWebRequest;
} public void setNativeWebRequest(NativeWebRequest nativeWebRequest) {
this.nativeWebRequest = nativeWebRequest;
}
}
package com.louis.ssh.web.controller;import java.io.Serializable;import javax.annotation.Resource;import org.springframework.ui.ModelMap;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.context.request.NativeWebRequest;import com.louis.ssh.domain.DomainObject;
import com.louis.ssh.util.JodaUtil;
import com.louis.ssh.util.LowerAndUpperCase;
import com.louis.ssh.web.converter.Converter;public abstract class FormController<T extends DomainObject> extends
AbstractController<T> { private String formView;
private Converter converter;
private static final String MODELATTRIBUTE = "domainObject"; public FormController() {
String name = LowerAndUpperCase.toLowerCase(getClazz().getSimpleName());
this.formView = name + "/" + name + "form";
setRedirectPath("/" + name + "/" + "list");
} @InitBinder
public void initBinder(WebDataBinder binder) {
registerPropertyEditor(binder);
} public void registerPropertyEditor(WebDataBinder binder) {
} @ModelAttribute(MODELATTRIBUTE)
public T getDomainObject(NativeWebRequest nativeWebRequest) {
setNativeWebRequest(nativeWebRequest);
Serializable id = getConverter().converter(getPathVariable("id"));
return getDomainObject(id);
} @RequestMapping(value = { "/form" + SUFFIX, "/form/{id}" + SUFFIX }, method = RequestMethod.GET)
public String setupForm(ModelMap model) {
setModel(model);
dataPrepare();
return formView;
} @RequestMapping(value = { "/form" + SUFFIX, "/form/{id}" + SUFFIX }, method = RequestMethod.POST)
public String save(@ModelAttribute(MODELATTRIBUTE)T domainObject) {
saveBefore(domainObject);
if (domainObject.getId() != null) {
domainObject.setUpdateTime(JodaUtil.now());
}
getGeneralDao().saveOrUpdate(domainObject);
saveAfter(domainObject);
return redirect();
} @RequestMapping(value = "/delete/{id}" + SUFFIX)
public String delete() {
Serializable id = getConverter().converter(getPathVariable("id"));
T item = getGeneralDao().get(id, getClazz());
deleteBefore(item);
getGeneralDao().delete(item);
deleteAfter();
return redirect();
} public void saveBefore(T domainObject) {
} public void saveAfter(T domainObject) {
} public void deleteAfter() {
} public void deleteBefore(T domainObject) {
} public String getFormView() {
return formView;
} public void setFormView(String formView) {
this.formView = formView;
} public T getDomainObject(Serializable id) {
T t = null;
if (id != null) {
t = getGeneralDao().get(id, getClazz());
}
if (t == null) {
try {
t = getClazz().newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return t;
} public Converter getConverter() {
return converter;
} @Resource(name = "converter")
public void setConverter(Converter converter) {
this.converter = converter;
}}