سؤال

وأنا خلقت الماجستير بسيط / التفاصيل باستخدام myfaces وrichfaces. بالنقر على ح: commandLink في الأغنياء: DataTable ويكون المستخدم قادرا على فتح عرض التفاصيل وتعديل الكيان.

والآن أريد أن إنشاء URL التي تسمح للمستخدم لفتح عرض التفاصيل مباشرة. عادة أود أن لهذا عن طريق إنشاء URL مثل /detail.jsp؟id=12 - كيف يمكنني تحقيق ذلك مع JSF؟

هل كانت مفيدة؟

المحلول

ويمكنك بناء URL باستخدام معلمات على السيطرة الرابط التالي:

    <h:outputLink value="reqscope.faces">
        <f:param name="id" value="#{row.id}" />
        <h:outputText value="link" />
    </h:outputLink>

في الصفحة الهدف، يمكنك أن تقرأ هوية من الخريطة المعلمة، وذلك باستخدام إما مباشرة أو عن طريق لغة التعبير حبة المدارة.

والشخصي:

<f:view>
    id= <h:outputText value="#{param['id']}" />
    <br />
    id= <h:outputText value="#{lookupBean.id}" />
</f:view>

وفول:

public class LookupBean implements Serializable {

    public String getId() {
        FacesContext context = FacesContext.getCurrentInstance();
        ExternalContext extContext = context.getExternalContext();
        Map<String, String> params = extContext.getRequestParameterMap();
        return params.get("id");
    }

}

وإعلان جوه config.xml:

<managed-bean>
    <managed-bean-name>lookupBean</managed-bean-name>
    <managed-bean-class>reqscope.LookupBean</managed-bean-class>
    <managed-bean-scope>request</managed-bean-scope>
</managed-bean>

نصائح أخرى

وI استخدام a4j: commandlink لتمرير أولا هوية الكيان أريد أن تظهر تفاصيل لعرض التفاصيل الفول. وبعد ذلك ببساطة استخدام document.location للانتقال إلى طريقة العرض.

<a4j:commandLink action="#{detailviewBean.setDetailID(entity.someid)}" value="#{entity.someid}" oncomplete="document.location='/app/detailview.seam'"/>

إذا كنت تستخدم JSF 1.2، يمكنك استخدام و: setPropertyActionListener:

<h:commandLink action="#{reqscope.faces}">
    <h:outputText value="link"/>
    <f:setPropertyActionListener 
        value="#{id}" 
        target="#{lookupBean.id}"/>
</h:commandLink>

تنفيذ طرق من LinkButton معلمات

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top