package com.jspxcms.core.web.fore; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.jspxcms.common.web.Servlets; import com.jspxcms.core.domain.Node; import com.jspxcms.core.domain.Site; import com.jspxcms.core.service.NodeBufferService; import com.jspxcms.core.service.NodeQueryService; import com.jspxcms.core.support.Context; import com.jspxcms.core.support.ForeContext; /** * NodeController * * @author liufang * */ @Controller public class NodeController { @RequestMapping(value = { "/", "/index.jspx" }) public String index(HttpServletRequest request, org.springframework.ui.Model modelMap) { Site site = Context.getCurrentSite(request); Node node = query.findRoot(site.getId()); modelMap.addAttribute("node", node); ForeContext.setData(modelMap.asMap(), request); String template = Servlets.getParameter(request, "template"); if (StringUtils.isNotBlank(template)) { return template; } else { return node.getTemplate(); } } @RequestMapping(value = "/node/{nodeId:[0-9]+}_{page:[0-9]+}.jspx") public String nodeByPagePath(@PathVariable Integer nodeId, @PathVariable Integer page, HttpServletRequest request, org.springframework.ui.Model modelMap) { // Site site = Context.getCurrentSite(request); Node node = query.get(nodeId); String linkUrl = node.getLinkUrl(); if (StringUtils.isNotBlank(linkUrl)) { return "redirect:" + linkUrl; } // TODO if(node==null) {...} // Site site = node.getSite(); modelMap.addAttribute("node", node); modelMap.addAttribute("text", node.getText()); Map<String, Object> data = modelMap.asMap(); ForeContext.setData(data, request); ForeContext.setPage(data, page, node); String template = Servlets.getParameter(request, "template"); if (StringUtils.isNotBlank(template)) { return template; } else { return node.getTemplate(); } } @RequestMapping(value = "/node/{nodeId:[0-9]+}.jspx") public String node(@PathVariable Integer nodeId, Integer page, HttpServletRequest request, org.springframework.ui.Model modelMap) { return nodeByPagePath(nodeId, null, request, modelMap); } @ResponseBody @RequestMapping(value = "/node_views/{nodeId:[0-9]+}.jspx") public String views(@PathVariable Integer nodeId) { return Integer.toString(bufferService.updateViews(nodeId)); } // @Autowired // private SiteService siteService; @Autowired private NodeBufferService bufferService; @Autowired private NodeQueryService query; }