Skip to content

Commit

Permalink
从struts2转换为spring mvc
Browse files Browse the repository at this point in the history
  • Loading branch information
ysc committed Apr 21, 2015
1 parent 16a7c57 commit 2b1cf06
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
package org.apdplat.module.info.action;

import org.apdplat.module.info.model.InfoType;
import org.apdplat.module.info.model.News;
import org.apdplat.module.info.service.InfoTypeService;
import org.apdplat.platform.action.ExtJSSimpleAction;
import org.apdplat.platform.criteria.Property;
Expand All @@ -31,50 +30,47 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

@Scope("prototype")
@Controller
@RequestMapping("/info")
@RequestMapping("/info/info-type/")
public class InfoTypeAction extends ExtJSSimpleAction<InfoType> {

private String node;
@Resource(name = "infoTypeService")
@Resource
private InfoTypeService infoTypeService;
private String lang = "zh";

//setInfoTypeName依赖于setLang,所以在创建的时候没有办法确保顺序
//所以要强制指定
@Override
protected void assemblyModelForCreate(InfoType model) {
String lang = getRequest().getParameter("lang");
model.forceSpecifyLanguageForCreate(lang);
}
@Override
protected void assemblyModelForPartUpdate(List<Property> properties) {
properties.forEach(property -> {
if("lang".equals(property.getName())){
if ("lang".equals(property.getName())) {
properties.remove(property);
}
});
}
//修改模型的时候,在修改内容之前先设置语言
@Override
protected void old(InfoType model) {
String lang = getRequest().getParameter("lang");
LOG.info("控制器设置语言:"+lang);
model.setLang(lang);
}

public String store() {
return query();
}

@Override
protected void afterRender(Map map, InfoType obj) {
retrieveAfterRender(map, obj);
}

@Override
protected void retrieveAfterRender(Map map, InfoType obj) {
String lang = getRequest().getParameter("lang");
if (obj.getParent() != null) {
obj.getParent().setLang(lang);
map.put("parent_infoTypeName", obj.getParent().getInfoTypeName());
Expand All @@ -84,15 +80,17 @@ protected void retrieveAfterRender(Map map, InfoType obj) {
map.remove("parent");
}

@Override
@ResponseBody
public String query() {
//如果node为null则采用普通查询方式
@RequestMapping("store.action")
public String store(@RequestParam(required=false) String node,
@RequestParam(required=false) String lang){
if (lang == null) {
lang = "zh";
}
if (node == null) {
return super.query();
node = "root";
}
//如果指定了node则采用自定义的查询方式
if ("root".equals(node.trim())) {
if (node.trim().startsWith("root")) {
String json = infoTypeService.toRootJson(lang);
return json;
} else {
Expand All @@ -101,12 +99,4 @@ public String query() {
return json;
}
}

public void setNode(String node) {
this.node = node;
}

public void setLang(String lang) {
this.lang = lang;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,13 @@

@Scope("prototype")
@Controller
@RequestMapping("/info")
@RequestMapping("/info/news/")
public class NewsAction extends ExtJSSimpleAction<News> {
private String lang = "zh";
private int infoTypeId;

//setTitle和setContent依赖于setLang,所以在创建的时候没有办法确保顺序
//所以要强制指定
@Override
protected void assemblyModelForCreate(News model) {
String lang = getRequest().getParameter("lang");
model.forceSpecifyLanguageForCreate(lang);
}
@Override
Expand All @@ -60,12 +58,15 @@ protected void assemblyModelForPartUpdate(List<Property> properties) {
}
@Override
protected void old(News model) {
LOG.info("控制器设置语言:"+lang);
String lang = getRequest().getParameter("lang");
LOG.info("控制器设置语言:" + lang);
model.setLang(lang);
}
//方式二:使用IN语句
@Override
public PropertyCriteria buildPropertyCriteria(){
String infoTypeIdStr = getRequest().getParameter("infoTypeId");
int infoTypeId = Integer.parseInt(infoTypeIdStr);
PropertyCriteria propertyCriteria=new PropertyCriteria();
if(infoTypeId>0){
InfoType obj=getService().retrieve(InfoType.class, infoTypeId);
Expand All @@ -84,8 +85,9 @@ public PropertyCriteria buildPropertyCriteria(){
}
@Override
protected void renderJsonForRetrieve(Map map) {
String lang = getRequest().getParameter("lang");
model.setLang(lang);
render(map,model);
render(map, model);
map.put("infoTypeId", model.getInfoType().getId());
map.put("content", model.getContent());
}
Expand All @@ -102,6 +104,7 @@ protected void renderJsonForQuery(List result) {
}
@Override
protected void render(Map map,News model){
String lang = getRequest().getParameter("lang");
model.setLang(lang);
map.put("id", model.getId());
map.put("version", model.getVersion());
Expand All @@ -114,10 +117,4 @@ protected void render(Map map,News model){
map.put("updateTime", DateTypeConverter.toDefaultDateTime(model.getUpdateTime()));
map.put("enabled", model.isEnabled()==true?"是":"否");
}
public void setInfoTypeId(int infoTypeId) {
this.infoTypeId = infoTypeId;
}
public void setLang(String lang) {
this.lang = lang;
}
}

0 comments on commit 2b1cf06

Please sign in to comment.