开发者社区> 问答> 正文

JFinal重写URL映射过程的问题:报错

看了OSChina上的一些问题

说了都是用Handler去解决

但是有一个问题

比如说http://localhost/pppp/oooo?param3=111

我希望能直接映射到模板引擎去解析  不通过Action去调用render方法   这里已经可以

但是比如我映射到模板引擎去解析的时候 我后面的pppp是参数1 oooo是参数2 111是参数3

也就是我希望能直接request.getParam...("param1") 2 3能取出这里面的值

但是用handler解决的话只是更改的target

如果这里也不能转发到http://localhost?param1=pppp&param2=oooo&param3=111

所以只能取得param3的值

自定义的handler里面进行forward的话后面的就不执行   模板引擎就不能调用render方法去渲染了

这个问题有什么好的办法去解决?

@JFinal @铂金小虫

展开
收起
kun坤 2020-06-06 11:54:10 604 0
1 条回答
写回答
取消 提交回答
  •    当请求发送后, queryString 会被 web 容器直接解析并置入 HttpServletRequest 对象中,楼主的 http://localhost/pppp/oooo?param3=111 请求 queryString 中只有 param3 这一个参数。

        而HttpServletRequest 对象中存放参数的 map 是只读的,楼主可以通过反射将 pppp、oooo这两个参数置入 map 中去,也可以想办法替换掉整个 map让期变成可写的。

        比较可行的办法是将参数全部当成 urlPara,在 Handler 中处理,在 Controller 中 getPara(n) 来使用

    ######我就是没有使用JFinal默认的action处理方法 自定义的一个handler去处理 让一些与后台交互才通过action去处理 而一些数据展示直接用url映射到模板文件中直接render出来 所以模板文件中无法获得这种getPara..只能从request中去获取..
    2020-06-06 11:54:16
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

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

相关实验场景

更多