Jsf 动态动作结构
我有一个基本的JSF问题。我有一个循环,试图根据列表值创建mutile命令链接。该命令链接将从列表字段调用相应的操作 基本上我有这个豆子:Jsf 动态动作结构,jsf,jsf-2,Jsf,Jsf 2,我有一个基本的JSF问题。我有一个循环,试图根据列表值创建mutile命令链接。该命令链接将从列表字段调用相应的操作 基本上我有这个豆子: public class FavoriteTasks implements Serializable { private static final long serialVersionUID = -8702569738872927728L; private String key; private String action;
public class FavoriteTasks implements Serializable {
private static final long serialVersionUID = -8702569738872927728L;
private String key;
private String action;
private String widget;
private String name;
public FavoriteTasks(String key, String action, String widget, String name) {
super();
this.key = key;
this.action = action;
this.widget = widget;
}
然后使用属性文件填充它:
private void setUpFavTasks(UserUIPreferencesVO uiPref) {
List<String> fTaskList = uiPref.getFavoriteTasks();
favTasks =new ArrayList<FavoriteTasks>();
for(String var:fTaskList){
FavoriteTasks ft = new FavoriteTasks(var,
ConfigurationData.getValue(var+".action"),
ConfigurationData.getValue(var+".widget"),
ConfigurationData.getValue(var+".name"));
favTasks.add(ft);
}
}
private void setupfavtask(UserUIPreferencesVO uiPref){
List fTaskList=uiPref.getFavoriteTasks();
favTasks=newarraylist();
for(字符串变量:fTaskList){
FavoriteTasks ft=新的FavoriteTasks(变量,
ConfigurationData.getValue(var+“.action”),
ConfigurationData.getValue(var+“.widget”),
ConfigurationData.getValue(var+“.name”);
favTasks.add(英尺);
}
}
现在的问题是,操作不理解它需要首先获取值并读取该值,然后根据该值进行方法调用
<ui:repeat value="#{userSessionBean.favTasks}" var="favTasks" >
<li><ice:commandLink styleClass="shortcut-menu" action="#{favTasks.action}">
<f:param name="filterByContentWidget" value="#{favTasks.widget}" />
<f:param name="filterByContentGroup" value="#{favTasks.key}" />
<f:param name="menuName" value="#{favTasks.name}" />
<h:outputText value="#{msgs[favTasks.key]}" />
</ice:commandLink>
</li>
</ui:repeat>
操作尝试获取favTasks.action并失败,因为没有这样的方法。它需要读取favTasks.action中存储的值,然后转到该值所表示的方法。。。例如,如果favTasks.action=catalogHandler.showCatalog。它需要调用catalogHandler.showCatalog而不是favTasks.action当您单击commandLink时,action属性用于指示下一个视图。它是一个返回字符串的方法表达式 例如:
public String method() {
//do something
return "success";
}
在你的commandLink中
<ice:commandLink value="Submit" action="#{bean.method}" />
private String key;
private String widget;
private String name;