gpt4 book ai didi

java - 使用 Liferay 选择框

转载 作者:行者123 更新时间:2023-12-02 11:46:27 25 4
gpt4 key购买 nike

我准确地说,我是 Liferay 7 的初学者开发人员。我创建了一个选择框,用于恢复我的组织。但我想创建第二个依赖于第一个选择框的选择框。当我选择一个组织时,我想看到所选组织的子组织。我不知道该从哪里开始;(我希望我已经说清楚了:)。

我的门户组件:

`公共(public)类 NetcofilmoPortlet 扩展了 MVCPortlet {

public List<Organization> getOrga() {

Long companyId = PortalUtil.getCompanyIds()[0];
Long parentOrgaId = OrganizationLocalServiceUtil.getOrganizationId(companyId, "Crédit Agricole");

List<Organization> Siege = OrganizationLocalServiceUtil.getOrganizations(companyId, parentOrgaId);

return Siege;
}

@Override
protected void doDispatch(RenderRequest request, RenderResponse response) throws IOException, PortletException {
request.setAttribute("listeOrganisations", getOrga());

super.doDispatch(request, response);
}

}`

<aui:select name="Siege" onChange="submit();" id="Siege">
<aui:option value="" selected="true">---Select---</aui:option>
<c:forEach var="organisation" items="${listeOrganisations}">
<aui:option value="${organisation.getOrganizationId()}">${organisation.getName()}</aui:option>
</c:forEach>

最佳答案

您可以使用 ajax 调用来实现此目的。

在选择组织时,您可以调用 onChange 方法,该方法将调用您的 javascript,并且您可以从 Javascript 进行 ajax 调用(传递组织 ID)并检索子组织并在第二个下拉列表中设置这些值

我有州和城市的代码。您可以根据您的要求将其更改为组织和子组织。

在 JSP 中:

<select id="state" class="form-control inpt_sty">
<option value="One">One</option>
<option value="Two">Two</option>
<option value="Three">Three</option>
</select>
<select id="city" class="form-control inpt_sty"><option value="">Select City</option></select>

Javascript:

$("#state").change(function() {         
state_id = $(this).val();
$.ajax({
url : "<portlet:resourceURL id='CityCall'/>",
type : 'POST',
dataType : 'json',
data : { state_id : state_id},
success : function(data) {
console.log(JSON.stringify(data));
for(var i in data)
{
$("#city").append("<option value=" + data[i].city_id + ">" + data[i].city_name + "</option>");
}
},
error : function() {
console.log("There was an error. Try again please!");
}
});
});

在您的 portlet 类中:

public class BranchLocator extends MVCPortlet {
@Override
public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse)throws IOException, PortletException
{
if ("CityCall".equalsIgnoreCase(resourceRequest.getResourceID()))
{
String state_id = resourceRequest.getParameter("state_id");
//logic to retrieve data
}
}
}

关于java - 使用 Liferay 选择框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48169025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com