ClouGence / hasor

Hasor是一套基于 Java 语言的开发框架,区别于其它框架的是 Hasor 有着自己一套完整的体系,同时还可以和先有技术体系做到完美融合。它包含:IoC/Aop容器框架、Web框架、Jdbc框架、RSF分布式RPC框架、DataQL引擎,等几块。
http://www.hasor.net
Apache License 2.0
983 stars 273 forks source link

Get请求的传参问题 #17

Closed caorenpeng-kaer closed 4 years ago

caorenpeng-kaer commented 4 years ago

最好能有个demo能说明每个请求方式的操作方式,我GET请求,定义参数无法传参

zycgit commented 4 years ago

确实有这个问题,目前的方式只能是通过这样来解决。 userName 传进去的是个数组。 获取第一个值要用 userName[0]

select * from user_info where name like concat('%',#{userName[0]},'%')

产生这个原因主要是因为表单上 get /post 中是允许同名 表单或参数出现多次。 这样后端获取参数就需要用 getParameterValues。 这正是 Dataway 的处理方式,但确实会产生一些误解。

下一个 4.1.4 版本里面我用两个变量名来加以区分。

目前建议用下列办法: 建议先通过 DataQL 语言模式下做一个简单处理。换成这种写法都兼容了。

var fourceOne = (mabeArray) -> { var tmpVar = mabeArray => [ # ] return tmpVar[0] }

var tempCall = @@sql(userName)<% select * from user_info where name like concat('%',#{userName},'%') %>; return tempCall( fourceOne(${userName}) );

zycgit commented 4 years ago

4.1.4 已经优化。 不用在通过使用上述 fourceOne 方式。直接获取就可以了。

SQL 模式下这个就可以了: select * from user_info where name like concat('%',#{userName},'%')