2

JBOSS AS-7.1.1 Final と Seam 3.1.0 Final を使用して Web アプリケーションを開発しています。作業を始めたばかりですが、次の問題が発生しました。次のコードの送信ボタンがあります。

    <h:commandButton action="#{projectController.create}" value="Create Project" styleClass="greyishBtn submitForm">
        <f:ajax execute="@form" event="click" render="tblObject"/>
    </h:commandButton>

ボタンをクリックすると、次のエラーが発生します。

    java.lang.IllegalStateException error: Parameters processing failed.

アクションはトリガーされませんが、タグを削除すると、ajax 以外ですべて正常に動作します。

バックエンド コードは次のとおりです。

    @Named
@RequestScoped
@Model
public class ProjectController implements Serializable {

/**
 * 
 */
private static final long serialVersionUID = 3572096930093985831L;

@Inject private EntityManager em;
@Inject private Logger log;
//@Inject private FacesContext facesContext;
@Inject private Event<Project> projectEventSrc;

private String projectId;

@Produces
@Named
private Project project;

private Query query;

private List<Project> projectList;
private List<ProjectDTO> projectDtoList;



public ProjectController() {
    // Default constructor.
}

@PostConstruct
public void postInit(){
    // Init project
    project = new Project();

    // Get project list.
    query = em.createQuery("select project from Project project");
    projectList = query.getResultList();
    projectDtoList = new ArrayList<ProjectDTO>();

    for(Project project : projectList){
        ProjectDTO projectDTO = new ProjectDTO();
        projectDTO.setProjectId(project.getProjectId());
        projectDTO.setProjectName(project.getProjectName());
        projectDTO.setProjectStatus(23.4d);
        // Add to list.
        projectDtoList.add(projectDTO);
    }

}

public void loadProject(){
    // Load project here based on project id.
    if(projectId == null){
        // Do nothing.
        return;
    }

    // Load from DB.
    project = em.find(Project.class, projectId);
}

/**
 * Create new project.
 * @throws Exception
 */
public void create() throws Exception{
    log.info("Creating: " + project.getProjectName());
    project.setProjectId(UUID.randomUUID().toString());
    em.persist(project);
    //facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Registered!", "Registration successful"));
    projectEventSrc.fire(project);

    // Reinit.
    project = new Project();
}

public void setProjectId(String projectId) {
    this.projectId = projectId;
}

public String getProjectId(){
    return this.projectId;
}


public List<Project> getProjectList() {
    return projectList;
}

public void setProjectList(List<Project> projectList) {
    this.projectList = projectList;
}

public List<ProjectDTO> getProjectDtoList() {
    return projectDtoList;
}

public void setProjectDtoList(List<ProjectDTO> projectDtoList) {
    this.projectDtoList = projectDtoList;
}

}

誰でも何か考えがありますか?

4

3 に答える 3

1

これは JBoss AS 7.1.1 のバグであり、IE ブラウザーが使用されている場合にのみ発生します。問題AS7-5143も参照してください。

現在のところ、JBoss AS 7.1.0 にダウングレードすることが唯一の解決策のようです。

于 2012-11-25T14:39:23.867 に答える
0

回避策として同じ問題がありました。サードパーティのライブラリを含めることができれば、代わりに PrimeFaces commandButton を使用できます。デフォルトでajaxを使用しており、これは機能しているようです

于 2013-03-21T11:24:29.923 に答える