我想就我想要了解的特定问题提供一些反馈。我正在尝试构建一个简单的Java Web应用程序,允许用户输入他们的邮政编码和距离,并让java servlet捕获该数据并通过Best Buy的API,BBYOpen运行它,以返回最接近所提供信息的商店。 Remix.Java API(由BBYOpen提供)文档以此为例:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.mattwilliamsnyc.service.remix.*;
public class RemixAdvancedDemo {
public static void main(String[] args) {
Remix remix = new Remix("YourApiKey");
List<String> storeFilters = new ArrayList<String>();
List<String> productFilters = new ArrayList<String>();
storeFilters.add("area(11201,10)");
productFilters.add("sku=8982988");
try {
StoresResponse response = remix.getStoreAvailability(
storeFilters,
productFilters
);
if(!response.isError()) {
for(Store store : response.list()) {
System.out.println(
store.getName() + " (" + store.getDistance() + " miles)"
);
for(Product product : store.getProducts()) {
if(product.hasInStoreAvailability()) {
System.out.println(product.getName());
System.out.println(
"Available for $" + product.getSalePrice()
);
}
}
System.out.println();
}
} else {
ErrorDocument error = response.getError();
if(null != error) {
System.out.println(error.getStatus());
System.out.println(error.getMessage());
System.out.println("Examples:");
for(String example : error.getExamples()) {
System.out.println(example);
}
}
}
} catch(RemixException e) {
e.printBackTrace();
}
}
}
这是一个在纽约市找到Playstation 3可用商店的例子。这不是我想要做的。但我认为我需要的是在这里稍微修改一下。
1.我假设我可以删除代码中对产品的任何引用。
2.我需要List storeFilters = new ArrayList();?这对servlet来说是否必要。
3.我可以使用getParameter()从我的.jsp表单中检索用户输入,然后在storeFilters.add中引用它(&#34; area(11201,10)&#34;);替换那里已有的值。
我是java的新手,对此的任何帮助或建议都会很棒。 干杯
答案 0 :(得分:0)
您似乎可以忽略处理产品的示例部分,因为您只对位置感兴趣。
该行声明变量 storeFilters 并将其初始化为空列表。所以是的,那部分是必需的,因为您稍后会在代码中向该列表添加过滤器。查看List(和ArrayList)上的文档:http://docs.oracle.com/javase/8/docs/api/java/util/List.html
是的,HttpServletRequest.getParameter()将为您提供表单字段(和查询字符串参数)的字符串值,以便您可以动态创建所需的过滤器并将其添加到storeFilters列表中。