【问题标题】:can not generate selectonemenu items in primefaces无法在 primefaces 中生成 selectonemenu 项
【发布时间】:2013-03-08 21:21:54
【问题描述】:

你好,我是stackoverflow的新手,我正在使用primefaces 3.5我的问题是,是否有必要在静态块或构造函数中设置selectonemenu项目(Java util的映射).. 喜欢:

slider.xhtml

<h:outputLink value="circle">
<h:outputText value="click Circle!"/>
</h:outputLink>

漂亮的配置.xml

<url-mapping id="circle"> 
  <pattern value="/circle" /> 
  <view-id value="xhtmls/circle.xhtml" />
  <action>#{circleAction.action}</action>
 </url-mapping> 

CircleAction.java

public class CircleAction {
private String favCoffee2;
private Map<String,Object> coffee2Value;

//setter n getter

public Map<String,Object> getFavCoffee2Value() {
return coffee2Value;
}

public String action(){
coffee2Value = new LinkedHashMap<String,Object>();
coffee2Value.put("mohsin - Cream Latte", "Cream Latte"); //label, value
coffee2Value.put("mohsin - Extreme Mocha", "Extreme Mocha");
coffee2Value.put("mogsin - Buena Vista", "Buena Vista");

return "pretty:addcircle";
}           
} 

circle.xhtml

<p:selectOneMenu value="#{circleAction.favCoffee2}">
<f:selectItems value="#{circleAction.favCoffee2Value}" />
</p:selectOneMenu>

selectOneMenu 在这种情况下是空白的,但是当我从操作方法中删除下面的代码并将其放在静态块中时,selectOneMenu 将生成 java.util.map 中的所有项目;

coffee2Value = new LinkedHashMap<String,Object>();
coffee2Value.put("mohsin - Cream Latte", "Cream Latte"); //label, value
coffee2Value.put("mohsin - Extreme Mocha", "Extreme Mocha");
coffee2Value.put("mogsin - Buena Vista", "Buena Vista");

【问题讨论】:

    标签: jsf-2 primefaces prettyfaces


    【解决方案1】:

    问题是当您访问/circle 时,PrettyFaces 将执行您的操作方法,并在您返回pretty:addcircle 时将您重定向到新页面。因此,您的请求范围 bean(尤其是地图)的所有值都将丢失。只需从该方法返回 null 即可。在这种情况下,PrettyFaces 只会渲染 xhtmls/circle.xhtml,这可能就是您想要的。

    【讨论】:

    • 那我该怎么办?我已经
    • 那我该怎么办?我有 我想在其中调用'ACTION'方法,该方法处理一些数据并将其呈现给SELECTONEMENU,就像我之前所做的那样,我有一个表单,我选择一些值并提交'# {circleAction.edit} 该值指向同一类(CIRCLE ACTION),但 edit() 方法,但它不起作用,因为当我单击 我的浏览器 URL 是 localhost/myApp/circle 调用 #{circleAction. ation} 后调用 URL 为 localhost/myApp/addcircle 但 selectOneMenu 不工作,
    • 如果我使用 URL localhost/myApp/circle 它总是调用操作方法,但我也想调用编辑方法
    • 我应该使用会话范围吗?而不是请求范围
    • 我想在一个 MAPPING ID 相同的动作类(java 文件)中调用 2 个方法,这可能吗?一个通过链接调用,另一个通过按钮调用
    猜你喜欢
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多