gpt4 book ai didi

java - 对 JSF 下拉值的操作

转载 作者:行者123 更新时间:2023-11-30 04:55:22 25 4
gpt4 key购买 nike

我有一个 JSF 页面,这是一个从服务获取值的下拉菜单。

<h:selectOneMenu id="valueList" value="#" style="height:20px;">
<f:selectItem itemValue="Select Action" itemLabel="Select Action" />
<f:selectItems value="#{sampleService.sampleMethod}"
var="SampleExport" itemValue="#{SampleExport}"
itemLabel="#{SampleExport}">
</f:selectItems>
</h:selectOneMenu>

导出列表包含 - abc、xyz

sampleService 类

public class SampleServiceImpl implements .... {

private List<String> sampleList;


public List<String> getSampleList;() {
return sampleList;
}


public void setSampleList;(List<String> sampleList;) {
this.sampleList=sampleList;;
}

/**
* Method for List to be displayed in drop down
*/
public void sampleMethod(){
if (sampleList== null) {
sampleList = new ArrayList<String>();
sampleList.add("abc");
sampleList.add("xyz");
}
setSsampleList(sampleList);
}
}

还有一个操作按钮,用于根据选择的值类型(即 abc 或 xyz)生成 pdf。

点击 PDF 按钮

<ui:define name="actions">
<h:commandButton styleClass="inputbutton" value="GeneratePdf" id="export"
action="#{generatePdf.pdfReport}" style="float:right;width : 73px;" />
</ui:define>

public class GeneratePdf {

public void pdfReport() {
..........
...code....
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(0);

..........
.code..........


methodAbc(){
.....
}

method Xyz(){
......
}

FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();

externalContext.setResponseContentType("application/vnd.ms-excel");

externalContext.setResponseHeader("Content-Disposition",
"attachment; filename=\"Sample Report\"");

workbook.write(externalContext.getResponseOutputStream());
facesContext.responseComplete();

}

}

我需要为从下拉列表中选择的值生成 pdf。如果选择“abc”,则应调用 methodAbc(),如果选择“xyz”,则应调用方法Xyz()。

下拉列表还可以包含更多值 - abc、xyz、pqr、rst 等。我知道为下拉列表中的每个值添加方法是不可行的。

最佳答案

创建私有(private)属性(property):

public class GeneratePdf {
private String selectedValue;
//getter/setter

将其绑定(bind)到选择菜单:

<h:selectOneMenu id="valueList" value="#{generatePdf.selectedValue}"

提交后,selectedValue 将在下拉列表中选择值。您可以在 pdfReport() 方法中使用它。

关于java - 对 JSF 下拉值的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8738693/

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