有 java 大神吗 帮帮忙

2017-01-05 16:54:31 +08:00
 getYourMother
项目中要做个模糊搜索的功能
http 请求地址类似这样: http://abc.com/d/4/c/3/a/1/b/2
也有可能是这样: http://abc.com/b/1/d/5/a/4
abcd 表示 4 个搜索条件,条件顺序不固定,个数也不固定
现在假设用户第一次选择了 a=1 ,我直接拼接 /a/1 ,即: http://abc.com/a/1
第二次选择了 c=3 ,我再拼接 /c/3 ,即: http://abc.com/a/1/c/3
第三次他又重新选了 a=2 那么我该怎么办?
5595 次点击
所在节点    Android
14 条回复
mringg
2017-01-05 17:09:17 +08:00
先都丢在 dict 里,最后再拼接
KentY
2017-01-05 17:13:49 +08:00
用 map 先保存用户选项, 最后生成字串.
你说的情况如果是覆盖以前的 a, 就简单的 map 就可以, 如果是一直可以 append, remove 的情形, 可以考虑用 multimap.
iyangyuan
2017-01-05 17:39:02 +08:00
这个接口的设计也是醉了。。为什么不用参数呢。。
neoblackcap
2017-01-05 17:48:32 +08:00
@iyangyuan 可能是 restful 的原教主义者
springmarker
2017-01-05 17:51:44 +08:00
一直不喜欢这样的访问方式,接口也不好设计,? a=1&b=2&c=3&d=4 多好,简单明了
smithtel
2017-01-05 17:55:25 +08:00
我在想你这帮忙是帮忙改接口设计呢,还是改存储选项呢
retanoj
2017-01-05 18:01:16 +08:00
接口变成 a=1&b=2 这种也行
后端处理 /a/1/b/2 <==> /b/2/a/1 能处理好也行
zhidian
2017-01-05 18:02:40 +08:00
后端应当制定一个明确、简单、合理的规则,而不是尝试适应前端稀奇古怪的请求,还美其名曰 versatile 。
misaka19000
2017-01-05 18:13:01 +08:00
看这标题我以为有人来问作业了。。。
loshine1992
2017-01-05 18:41:26 +08:00
restful 的筛选条件,应该以 query 的形式传吧,除非你这里的 a 、 b 、 c 、 d 都可以和数据库里的一个表对应起来
jetyang
2017-01-05 18:50:11 +08:00
这和 java 有什么关系?
williamgong
2017-01-05 18:56:02 +08:00
代码中用四个变量接着就可以了呀,最后才拼接成 url 不就可以了吗
ooTwToo
2017-01-05 19:53:15 +08:00
查询前重新拼接一次呗…
szanlin
2017-01-05 21:48:23 +08:00
支持这样的方式 a=1&b=2&c=3&d=4

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/332458

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX