Alloy UI 复选框 return 数据类型
Alloy UI checkbox return datatype
如果我将下面提到的代码与 alloy UI 一起写入我的 jsp 文件,我将在 Java [=20] 中接收什么数据类型=]作为回应。
我必须编写什么代码来检索我的选择?
<%
for (Manufacturer manufacturer : manufacturers) {
%>
<aui:input type="checkbox" name="location"
value="<%=manufacturer.getManufacturerId()%>"
label="<%=manufacturer.getName()%>"/>
<%
}
%>
调用String[] locationValues = ParamUtil.getParameterValues(request, "locationCheckbox");
可以得到校验值
这是测试结果(假设您检查了制造商 A 和制造商 C):
view.jsp:
<portlet:actionURL var="actionURL" name="myAction" />
<aui:form action="<%=actionURL %>">
<aui:input type="checkbox" id="a123" label="Manufacturer A" name="location" value="a123"></aui:input>
<aui:input type="checkbox" id="b456" label="Manufacturer B" name="location" value="b456"></aui:input>
<aui:input type="checkbox" id="c789" label="Manufacturer C" name="location" value="c789"></aui:input>
<aui:button type="submit" value="Submit"></aui:button>
</aui:form>
测试Java代码:
public void myAction(ActionRequest request, ActionResponse response){
Enumeration<String> params = request.getParameterNames();
while (params.hasMoreElements() )
{
String para_name = (String)params.nextElement();
if(para_name.startsWith("location")){
System.out.println(para_name);
}
}
System.out.println("location-getString:" + ParamUtil.getString(request, "location"));
System.out.println("location-getParameterValues:" + Arrays.toString(ParamUtil.getParameterValues(request, "location")));
System.out.println("locationCheckbox-getString:" + ParamUtil.getString(request, "locationCheckbox"));
System.out.println("locationCheckbox-getParameterValues:" + Arrays.toString(ParamUtil.getParameterValues(request, "locationCheckbox")));
}
控制台结果:
location
locationCheckbox
location-getString:a123
location-getParameterValues:[a123, b456, c789]
locationCheckbox-getString:a123
locationCheckbox-getParameterValues:[a123, c789]
备注:
我用 Liferay 6.2 测试了上面的代码。它为每个 <aui:input type="checkbox" ... />
:
创建两个客户端输入字段
<input type=hidden name="<portlet:namespace/>location" ... />
<input type=checkbox name="<portlet:namespace/>locationCheckbox" ... />
进一步行动:
如果您想设置 pre-checked 值,请将以下示例代码添加到 doView 函数:
List<String> preCheckedLocation = new ArrayList<String>();
preCheckedLocation.add("a123");
preCheckedLocation.add("c789");
renderRequest.setAttribute("preCheckedLocation",preCheckedLocation);
将 checked=true|false
添加到 view.jsp 中的 <aui:input>
字段:
<%@ page import="java.util.List"%>
...
<%
List<String> preCheckedLocation = (List<String>) request.getAttribute("preCheckedLocation");
%>
...
<aui:form action="<%=actionURL %>">
<aui:input type="checkbox" id="a123" label="Manufacturer A" name="location" value="a123" checked='<%= preCheckedLocation.contains("a123") %>' ></aui:input>
<aui:input type="checkbox" id="b456" label="Manufacturer B" name="location" value="b456" checked='<%= preCheckedLocation.contains("b456") %>' ></aui:input>
<aui:input type="checkbox" id="c789" label="Manufacturer C" name="location" value="c789" checked='<%= preCheckedLocation.contains("c789") %>' ></aui:input>
<aui:button type="submit" value="Submit"></aui:button>
</aui:form>
如果我将下面提到的代码与 alloy UI 一起写入我的 jsp 文件,我将在 Java [=20] 中接收什么数据类型=]作为回应。
我必须编写什么代码来检索我的选择?
<%
for (Manufacturer manufacturer : manufacturers) {
%>
<aui:input type="checkbox" name="location"
value="<%=manufacturer.getManufacturerId()%>"
label="<%=manufacturer.getName()%>"/>
<%
}
%>
调用String[] locationValues = ParamUtil.getParameterValues(request, "locationCheckbox");
可以得到校验值
这是测试结果(假设您检查了制造商 A 和制造商 C):
view.jsp:
<portlet:actionURL var="actionURL" name="myAction" />
<aui:form action="<%=actionURL %>">
<aui:input type="checkbox" id="a123" label="Manufacturer A" name="location" value="a123"></aui:input>
<aui:input type="checkbox" id="b456" label="Manufacturer B" name="location" value="b456"></aui:input>
<aui:input type="checkbox" id="c789" label="Manufacturer C" name="location" value="c789"></aui:input>
<aui:button type="submit" value="Submit"></aui:button>
</aui:form>
测试Java代码:
public void myAction(ActionRequest request, ActionResponse response){
Enumeration<String> params = request.getParameterNames();
while (params.hasMoreElements() )
{
String para_name = (String)params.nextElement();
if(para_name.startsWith("location")){
System.out.println(para_name);
}
}
System.out.println("location-getString:" + ParamUtil.getString(request, "location"));
System.out.println("location-getParameterValues:" + Arrays.toString(ParamUtil.getParameterValues(request, "location")));
System.out.println("locationCheckbox-getString:" + ParamUtil.getString(request, "locationCheckbox"));
System.out.println("locationCheckbox-getParameterValues:" + Arrays.toString(ParamUtil.getParameterValues(request, "locationCheckbox")));
}
控制台结果:
location
locationCheckbox
location-getString:a123
location-getParameterValues:[a123, b456, c789]
locationCheckbox-getString:a123
locationCheckbox-getParameterValues:[a123, c789]
备注:
我用 Liferay 6.2 测试了上面的代码。它为每个 <aui:input type="checkbox" ... />
:
<input type=hidden name="<portlet:namespace/>location" ... />
<input type=checkbox name="<portlet:namespace/>locationCheckbox" ... />
进一步行动: 如果您想设置 pre-checked 值,请将以下示例代码添加到 doView 函数:
List<String> preCheckedLocation = new ArrayList<String>();
preCheckedLocation.add("a123");
preCheckedLocation.add("c789");
renderRequest.setAttribute("preCheckedLocation",preCheckedLocation);
将 checked=true|false
添加到 view.jsp 中的 <aui:input>
字段:
<%@ page import="java.util.List"%>
...
<%
List<String> preCheckedLocation = (List<String>) request.getAttribute("preCheckedLocation");
%>
...
<aui:form action="<%=actionURL %>">
<aui:input type="checkbox" id="a123" label="Manufacturer A" name="location" value="a123" checked='<%= preCheckedLocation.contains("a123") %>' ></aui:input>
<aui:input type="checkbox" id="b456" label="Manufacturer B" name="location" value="b456" checked='<%= preCheckedLocation.contains("b456") %>' ></aui:input>
<aui:input type="checkbox" id="c789" label="Manufacturer C" name="location" value="c789" checked='<%= preCheckedLocation.contains("c789") %>' ></aui:input>
<aui:button type="submit" value="Submit"></aui:button>
</aui:form>