开发者社区> 问答> 正文

在使用velocityLayout时只能POST显示,在GET无效?403.10 禁止访问:配置无效

首次学习使用velocity,看到地瓜老大的urlmapp servlet 照抄,发现在post的时候可以正常使用布局,而Get时却什么也没有,无反应,一个空白的,这是怎么回事?   index.html 是有一个表单<form>和一个链接<a>

不可能吧,贴点代码来看看是什么问题。###### 

<servlet>
<servlet-name>velocity</servlet-name>
<servlet-class>VelocityServlet</servlet-class>
<init-param>
<param-name>org.apache.velocity.toolbox</param-name>
<param-value>/WEB-INF/cfg/velocity-toolbox.xml</param-value>
</init-param>
<init-param>
<param-name>org.apache.velocity.properties</param-name>
<param-value>/WEB-INF/cfg/velocity.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet> <servlet-mapping>
<servlet-name>velocity</servlet-name>
<url-pattern>*.vm</url-pattern>
</servlet-mapping>
  这是web.xml其中URLMappingServlet照抄,没作改变  
public class VelocityServlet extends VelocityLayoutServlet{ public final static String CURRENT_URI = "current_uri"; //{index}
public final static String REQUEST_URI = "request_uri"; //{/index} protected void processTemplate(HttpServletRequest request, HttpServletResponse response, boolean isPost) { String CUR_URI = (String) request.getAttribute(CURRENT_URI); String REQ_URI =(String) request.getAttribute(REQUEST_URI); log.info("#####>>>> VelocityServlet:"+REQ_URI); log.info(RequestUtils.getParam(request, "p1", "welcome")); log.info(RequestUtils.getParam(request, "page", 1));

} public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { log.info("#####>>>> VelocityServlet: doGet"); processTemplate(request,response, false); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { log.info("#####>>>> VelocityServlet: doPost"); processTemplate(request,response, true); } }

    这里只有doPost会用到layout,可以使用layout.vm

展开
收起
kun坤 2020-05-27 18:06:46 552 0
1 条回答
写回答
取消 提交回答
  • velocity.properties
    
    input.encoding = UTF-8
    output.encoding = UTF-8
    tools.view.servlet.error.template = error.vm
    file.resource.loader.class = org.apache.velocity.tools.view.WebappResourceLoader
    tools.view.servlet.layout.directory = /WEB-INF/layout/
    tools.view.servlet.layout.default.template =  layout.vm
    ######代码看不出来有问题,是不是页面没指定 #set($layout="layout.vm") 啊?
    2020-05-28 09:29:00
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载