文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Controller怎么配置

2023-06-26 07:06

关注

本篇内容介绍了“Controller怎么配置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Controller是MVC中的控制部分,主要的功能是接收客户端提交的请求,然后调用Service的功能及获取数据,最后返回View(视图,即JSP或freemarker页面)。

在Jspxcms中,Controller分为前台和后台。前台是普通用户浏览的页面,使用freemarker作为视图,通常不需要登录,比如网站首页、栏目页、专题页、搜索页等;后台一般为管理功能,使用JSP作为视图,需要管理员登录后台并且有相应权限,才能访问。

后台Controller配置

/src/main/resources/conf/plugin/plug/backend.xml

符合classpath:confbackend*.xml这个规则的文件会加载为后台Controller的配置文件。

<context:component-scan base-package="com.jspxcms.plug.web.back" use-default-filters="false">  <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>  <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/></context:component-scan>

这个配置会自动加载com.jspxcms.plug.web.back包下所有带有Controller或ControllerAdvice注解的类。

后台Controller返回JSP页面,JSP路径的前后缀分别为/WEB-INF/views/、.jsp,相应的配置文件是/src/main/resources/application.properties。

# 后台JSP地址前缀spring.mvc.view.prefix=/WEB-INF/views/# 后台JSP地址后缀spring.mvc.view.suffix=.jsp

后台Controller类

后台访问地址以/cmscp为根路径,@RequestMapping("/plug/resume")和@RequestMapping("list.do")配置的最终访问地址为/cmscp/plug/resume/list.do。

/cmscp路径由com.jspxcms.core.Application中的new ServletRegistrationBean(backendDispatcherServlet(), "/cmscp/*");代码设定。

后台Controller返回JSP页面,如plug/resume/resume_list,加上前后缀,实际文件地址为/WEB-INF/views/plug/resume/resume_list.jsp

package com.jspxcms.plug.web.back;@Controller@RequestMapping("/plug/resume")public class ResumeController {    @RequiresPermissions("plug:resume:list")    @RequestMapping("list.do")    public String list(...) {        ...        return "plug/resume/resume_list";    }    @RequiresPermissions("plug:resume:create")    @RequestMapping("create.do")    public String create(...) {        ...        return "plug/resume/resume_form";    }    ...}

前台Controller配置

com.jspxcms.plug.ContextConfig中的@ComponentScan({"com.jspxcms.plug.web.fore" })会加载com.jspxcms.plug.web.fore包中的@Controller类。

前台Controller返回的视图是FreeMarker,有关FreeMarker的配置在src/main/resources/context.xml。

其中templateLoaderPath是模板存储路径,也就是模板前缀,默认为/template。

<!-- FreeMarker --><bean id="freeMarkerViewResolver" class="com.jspxcms.common.freemarker.MyFreeMarkerViewResolver">  <property name="contentType" value="text/html; charset=UTF-8"/>  <property name="cacheUnresolved" value="false"/>  <property name="redirectHttp10Compatible" value="false"/></bean><!-- <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> --><bean id="freemarkerConfig" class="com.jspxcms.common.freemarker.AdapterFreeMarkerConfigurer">  <property name="freemarkerVariables" value="#{propertiesHelper.getBeanMap('freemarkerVariables.')}"/>  <property name="templateLoaderPath" value="${templateStorePath}"/>  <property name="freemarkerSettings">    <props>      <prop key="tag_syntax">square_bracket</prop>      <prop key="template_update_delay">${freemarkerConfig.template_update_delay}</prop>      <prop key="defaultEncoding">UTF-8</prop>      <prop key="url_escaping_charset">UTF-8</prop>      <prop key="localized_lookup">false</prop>      <prop key="locale">zh_CN</prop>      <prop key="boolean_format">true,false</prop>      <prop key="datetime_format">yyyy-MM-dd'T'HH:mm:ss</prop>      <prop key="date_format">yyyy-MM-dd</prop>      <prop key="time_format">HH:mm:ss</prop>      <prop key="number_format">0.###</prop>      <prop key="whitespace_stripping">true</prop>      <prop key="auto_import">/spring.ftl as s</prop>    </props>  </property></bean>

前台Controller类

前台访问地址直接以网站根路径为相对路径,@RequestMapping(value = "/resume")配置的访问地址就为/resume。

前台返回的FreeMarker模板路径,一般返回当前站点的模板路径,如/1/default/plug_resume.html,加上模板前缀,实际地址是/template/1/default/plug_resume.html;
也可以是任意值,如:/abc/def.html,加上模板前缀,实际地址为/template/abc/def.html。

package com.jspxcms.plug.web.fore;@Controllerpublic class ResumeController {    public static final String TEMPLATE = "plug_resume.html";    @RequestMapping(value = "/resume")    public String form(HttpServletRequest request, org.springframework.ui.Model modelMap) {    ...    // 将通用对象放到modelMap里,如ctx dy user site global等        Map<String, Object> data = modelMap.asMap();        ForeContext.setData(data, request);    // 获得当前站点对象        Site site = Context.getCurrentSite();    // 返回当前站点模板路径。如:/1/default/plug_resume.html。加上模板前缀,实际地址是 /template/1/default/plug_resume.html        return site.getTemplate(TEMPLATE);    }    @RequestMapping(value = "/resume", method = RequestMethod.POST)    public String submit(...) {    ...    }}

“Controller怎么配置”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯