1

マルチパートフォームであるフォームとViewScopedBackingBeanがあります。

マルチパートフォームを同じページに送信すると、バッキングBeanが再作成されます。

「通常の」形式であるため、Beanはまだそこにあると思いました。

サンプルコードは次のとおりです。

<h:form enctype="multipart/form-data">
    <p:commandButton value="Preview2" ajax="false" />
    <p:inputText id="photolink" size="60" value="#{test.photolink}" />
</h:form>

inputTextがクリアされます。

私がこれを使うとき:

<h:form>
    <p:commandButton value="Preview2" ajax="false" />
    <p:inputText id="photolink" size="60" value="#{test.photolink}" />
</h:form>

入力テキストはそのまま残ります...

この動作を修正する方法はありますか?

編集:これは機能しないxhtml全体です:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:p="http://primefaces.org/ui"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:pe="http://primefaces.org/ui/extensions">
<h:head>

</h:head>

<h:body>

<h:form id="editArticle" enctype="multipart/form-data" acceptcharset="UTF-8">
    <p:inputText id="title" value="#{test.photolink}" />
    <p:commandButton ajax="false" value="submit" />
</h:form>
</h:body>
</html>

私のweb.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
    <display-name>atlas</display-name>

    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping> 
</web-app>

私のクロサギバージョン:

Mojarra 2.1.7-jbossorg-1(20120227-1401)

4

2 に答える 2

0

バグを見つけましたが、質問が不完全だったので誰も見つけられませんでした...

私の問題は、JSF スコープと CDI @Named アノテーションを混在させたことです。

だから私の豆は次のようになりました:

@Named
@ViewScoped

それ以外の

@ManagedBean
@ViewScoped

このスレッドで説明されているように、非常に奇妙な動作が発生しました。

于 2012-12-17T16:14:49.707 に答える
0

私はそれを理解していなくても、私にとって十分な回避策を見つけました...

解決策は、経由ではなく、きれいな顔の URL を介してページを呼び出すことです。/faces/something.xhtml

次のような単純な prettyfaces ルール:

  <url-mapping id="test2"> 
      <pattern value="/test2"/> 
      <view-id value="/faces/test2.xhtml" />
  </url-mapping>

私のためにすべてを修正しました!

なぜこれが起こっているのか、なぜきれいな時間がこの奇妙な動作を修正したのかを誰かが説明できることを願っています..

于 2012-12-11T19:14:41.997 に答える