我有以下代码定义了一个getParts方法来查找系统中给定的Part Name和Part Number。请注意,此代码来自我们系统的API,因此,如果没有人可以提供帮助,我只会删除此问题。我认为有人可能会看到解决方案或帮助我。
<%! private QueryResult getParts( String name, String number )
throws WTException, WTPropertyVetoException {
Class cname = wt.part.WTPart.class;
QuerySpec qs = new QuerySpec(cname);
QueryResult qr = null;
qs.appendWhere
(new SearchCondition(cname,
"master>name",
SearchCondition.EQUAL,
name,
false));
qs.appendAnd();
qs.appendWhere
(new SearchCondition(cname,
"master>number",
SearchCondition.EQUAL,
number,
false));
qr = PersistenceHelper.manager.find(qs);
System.out.println("...found: " + qr.size());
return qr;
}
%>
但我想让用户更灵活地找到这些部件。所以我设置条件语句来检查单选按钮。这允许他们按部件名称和部件号搜索,查找全部,或使用通配符搜索。但是,我无法实现后两种选择。
为了尝试完成上述操作,我编写了以下代码:
<%
String partName = request.getParameter("nameInput");
String partNumber = request.getParameter("numberInput");
String searchMethod = request.getParameter("selection");
//out.print(searchMethod);
QueryResult myResult = new QueryResult();
if(searchMethod.equals("search"))
myResult = getParts(partName, partNumber);
else if(searchMethod.equals("all"))
{
//Should I write a new function and do this?
//myResult = getAllParts();
//or is there a way I could use a for each loop to accomplish this?
}
//else if(searchMethod.equals("wildcard"))
//get parts matching %wildcard%
while(myResult.hasMoreElements())
{
out.print(myResult.nextElement().toString());
}
%>
基本上,它接受用户输入并检查他们想要执行的搜索类型。有没有一种简单的方法可以将所有值传递给myResult对象?同样对于通配符搜索?就像我之前说的那样,在没有访问API的情况下尝试帮助可能是徒劳的,但希望事实并非如此。
谢谢!
答案 0 :(得分:1)
您可以(并且应该)重复使用该功能,但为了这样做,您需要一个部件名称和编号(因为它们是输入参数)。因此,对于多结果选项,您需要获取部件名称+数字的列表/集合,并将它们单独提供给函数,然后以最适合您需要的格式收集结果