小编Mat*_*ndy的帖子

JSF2.0 Tomcat7中的@Named和@ManagedBean注释之间的区别

这可能是一个noob问题,但是在很多教程和示例中,我看到这些注释被用作好像它们做同样的事情.

然而,我遇到一些限制使用@Named一个(特别是依赖注入等)我找不到解释差异的来源,如果有人可以粗略概述何时使用一个或者其他.

dependency-injection el jsf-2 tomcat7

24
推荐指数
1
解决办法
4万
查看次数

启用选择时,DataModel必须实现org.primefaces.model.SelectableDataModel

我试图在启用RowSelection的情况下实现一个DataTable Editable.

但它抛出了一个例外:

启用选择时,DataModel必须实现org.primefaces.model.SelectableDataModel.

我在对象类和托管bean类中实现了DataModel,但错误是相同的.现在只为我显示一个空白表.请帮忙.

jsf primefaces

23
推荐指数
3
解决办法
5万
查看次数

CDI @Named bean中的ManagedProperty返回null

我正在尝试处理@ManagedProperty但没有成功!

我一直在关注这个指南,看起来并不难.但我的代码根本行不通!

这是一个小片段

@ManagedBean
@SessionScoped
public class LoginBean {

@EJB
private LoginUserLocal loginUser;
private boolean loggedIn = false;
private User user;
private StreamedContent image;
.
.
.
//--
@Named(value = "messagesBean")
@RequestScoped
public class MessagesBean {

@ManagedProperty(value = "#{loginBean}")
private LoginBean loginBean;

public LoginBean getLoginBean() {
    return loginBean;
}

public void setLoginBean(LoginBean loginBean) {
    this.loginBean = loginBean;
}

public String getUser() {
    System.err.println(loginBean == null);
    return loginBean.getUser().getUsername();
}
Run Code Online (Sandbox Code Playgroud)

这段代码给了我一个NullPointerException,说loginBean为null!

有什么建议吗?

jsf ejb cdi managed-bean jboss-weld

20
推荐指数
1
解决办法
1万
查看次数

在JSF自定义验证器中区分ajax请求和完整请求

我的验证器需要知道它是完整请求还是ajax请求.在我当前的解决方案中,我检查X-Requested-With元素的http请求标头:

public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
    HttpServletRequest req = (HttpServletRequest) context.getExternalContext().getRequest();
        if (req.getHeader("X-Requested-With") != null) {
           // do something
        } else {
           // do something else
        }
       ...
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来实现这一目标?对于不同的浏览器/ javascript库,我的解决方案是否"安全"?

更新:

刚刚发现,如果ajax请求来自Primefaces组件库(标记),则仅存在X-Requested-With标头<p:ajax>.

如果我使用普通的JSF,它就不存在了<f:ajax>.所以我的方法不适用 <f:ajax>.

使用<f:ajax>有一个不同的标题:

Faces-Request:partial/ajax
Run Code Online (Sandbox Code Playgroud)

Osw提出的解决方案适用于<f:ajax> <p:ajax>:

PartialViewContext#isAjaxRequest()

java ajax jsf http-headers jsf-2

11
推荐指数
1
解决办法
8085
查看次数

为什么选择OneMenu发送ItemLabel到转换器?

我的JSF页面


<h:form>
   <h:selectOneMenu id="studlist" value="#{studBean.selectedStudent}">                   
     <p:ajax event="change" process="studlist" update="studdep" ></p:ajax>
     <f:selectItems value="#{studBean.student}" var="s" 
                    itemValue="#{s.studid}" itemLabel="#{s.name}"/>
     <f:converter   converterId="studentconverter"/>
     </h:selectOneMenu>
</h:form>
Run Code Online (Sandbox Code Playgroud)

转换器类(StudentConverter)


public Object getAsObject(FacesContext context, UIComponent component, String value) {

 Student studConvert= new Student();
 List<Student> students=new ArrayList<Student>();
 students=(ArrayList<Student>)((UISelectItems     
           component.getChildren().get(0)).getValue();
}
Run Code Online (Sandbox Code Playgroud)

在这个转换器上,Argument'String value'给itemLabel我为什么会这样?我在这个字符串上使用itemValue

jsf converter

10
推荐指数
1
解决办法
2万
查看次数

valueChangeListener的Ajax

我正在使用p:ajax监听器来处理值更改事件(因为valueChangeListener在表单提交时启动):

<p:ajax event="change" listener="#{bean.onNameChanged}"/>
Run Code Online (Sandbox Code Playgroud)

处理方法:

public void onNameChanged(final AjaxBehaviorEvent event)
Run Code Online (Sandbox Code Playgroud)

问题是,我无法在AjaxBehaviorEvent其类层次结构中找到读取输入旧值的位置.我也不能在谷歌中找到提示,如何获得旧价值......

如何在p:ajax onChange事件中访问旧值?

ajax jsf onchange primefaces jsf-2

10
推荐指数
2
解决办法
2万
查看次数

如何在JSF中隐藏元素?

是否可以div根据条件隐藏等等(就像你在EL中使用渲染属性一样),而不必将其包装在<h:panelGrid ...>具有渲染属性的etc中?它破坏了我的布局.我只需要逻辑,而不是布局.

jsf

9
推荐指数
1
解决办法
1万
查看次数

Primefaces微调器 - 如何改变宽度

如果我更改像下面的微调器宽度只更改上/下箭头位置 - 文本区域保持默认,我如何更改微调器的大小 - 包括文本区域.

<p:spinner id="spinnerBasic" style="width:50px;"/> 
Run Code Online (Sandbox Code Playgroud)

primefaces jsf-2

9
推荐指数
1
解决办法
1万
查看次数

如何将布尔值设置为"是"或"否"h:selectOneRadio

我在Tomcat 7上运行的JSF-2 Mojarra 2.0.8中有以下代码

<h:panelGrid  id="yesNoRadioGrid">
<h:panelGrid columns="2" rendered="#{user.yesNoRadioGridFlag}">
    <h:outputText id ="otherLbl" value="Select Yes or No"></h:outputText>
    <h:selectOneRadio id="yesNoRadio" value ="#{user.yesNoRadio}">
        <f:selectItems value="#{user.choices}"/>                    
        <f:ajax execute="@form" render="userDetailsGrid "></f:ajax>
    </h:selectOneRadio>
</h:panelGrid>
</h:panelGrid>      
<h:message for ="yesNoRadio"> </h:message>
<h:panelGrid  id="userDetailsGrid">
<h:panelGrid columns="2" rendered="#{user.yesNoRadio}">
    <h:outputLabel>Name :</h:outputLabel>
    <h:inputText id="customerName" value="#{user.customerName}"></h:inputText>
    <h:outputLabel>Salary: </h:outputLabel>
    <h:inputText id="customerSalary" value="#{user.customerSalary}"></h:inputText>
</h:panelGrid>
</h:panelGrid>
Run Code Online (Sandbox Code Playgroud)

我的managedBean包含以下内容

private enum Choice {

    Yes, No; 
    } 
private Choice yesNoRadio;
public Choice[] getChoices() {
    return Choice.values(); 
    }
public Choice getYesNoRadio() {
    return yesNoRadio;
}
public void setYesNoRadio(Choice yesNoRadio) { …
Run Code Online (Sandbox Code Playgroud)

jsf-2

8
推荐指数
2
解决办法
2万
查看次数

TabListener,ActionBarSherlock Fragment和ListFragment,PageAdapter的混合?一团糟

我有一个有2个片段的活动.我决定使用PageAdapter在两个视图之间滑动,但是,为了保持接近Android设计的最佳实践,我还决定使用操作栏选项卡(固定的).我正在使用ActionBarSherlock和来自这里的一些代码来实现选项卡.只有pageadapter,活动运行得很好,现在我有两个问题:1)第一个片段(MatchRugbyButtonFragment)叠加自己的图像,所以如果我触摸它并移动或改变某些东西,我看到工作片段上方的图像.2)当我转到第二个片段时,第一个丢失所有变量(定时器复位,计数器复位,ecc).我必须创建到tablistener,因为一个片段是SherlockFragment而另一个片段是SherlockListFragment,并且导致一个错误,它无法将片段转换为SherlockListFragment.这是活动:

  import java.util.ArrayList;
  import java.util.Arrays;
   import java.util.List;
    import java.util.Vector;

    import android.content.Intent;
    import android.os.Bundle;
     import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentManager;
     import android.support.v4.app.FragmentTransaction;
    import android.support.v4.app.ListFragment;
    import android.support.v4.view.ViewPager;
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.Toast;

      import com.actionbarsherlock.app.ActionBar;
    import com.actionbarsherlock.app.ActionBar.Tab;
    import com.actionbarsherlock.app.SherlockFragment;
    import com.actionbarsherlock.app.SherlockFragmentActivity;
    import com.actionbarsherlock.view.Menu;
    import com.actionbarsherlock.view.MenuInflater;
    import com.actionbarsherlock.view.MenuItem;


    public class MatchRugbyFragments extends SherlockFragmentActivity implements View.OnClickListener, View.OnLongClickListener{


public static ArrayList<String> commentary;

public static ArrayAdapter<String> adapter;



// list contains fragments to instantiate in the viewpager
static List<Fragment> fragments = new Vector<Fragment>();
// page adapter between …
Run Code Online (Sandbox Code Playgroud)

android android-fragments actionbarsherlock android-actionbar

8
推荐指数
1
解决办法
7959
查看次数