jsf - لم تتم إضافة سلسلة مضافة إلى أريليست/لم يتم تحديثها
arraylist (1)
أنا ثابتة، وأخيرا!
بفضل المستخدمKukeltje، الذي ألمح لي في الأشياء الأساسية التي حصلت على خطأ - والمستخدمWietlol الذين دافعتني في الدردشة من خلال الدعم المعنوي و "يؤمن لي :)
الحل:
..في Application.java:
public List<Feed> sentNotifications = new ArrayList<>();
public List<String> emails = new ArrayList<>();
public List<String> words = new LinkedList<>(Arrays.asList("vuln", "banana", "pizza", "bonanza"));
public List<String> feeds = new LinkedList<>(
Arrays.asList("http://www.kb.cert.org/vulfeed",
"https://ics-cert.us-cert.gov/advisories/advisories.xml",
"https://ics-cert.us-cert.gov/alerts/alerts.xml")
);
private String currentEmail;
private String currentFeed;
private String currentWord;
[...]
public void addEmail() {
emails.add(currentEmail);
}
.. و gui.xhmtl:
<!-- EMAILS -->
<h3>Configured Emails</h3>
<h:form>
<h:inputText value="#{Application.currentEmail}" var="email"/>
<h:commandButton value="Add Email" action="#{Application.addEmail}"/>
</h:form>
<h:form>
<ui:repeat var="email" value="#{Application.emails}">
<tr>
<td>#{email}</td>
<td>
<f:facet name="header">Action</f:facet>
<h:commandLink value="Delete" action="#{Application.rmEmail(email)}"/>
</td>
</tr>
<br></br>
</ui:repeat>
</h:form>
لاحظ كيف action="#{Application.addEmail}"
لا يستفيد من الوسيطات - بل يتم تسليم المعلمة إلى الطريقة عبر value="#{Application.currentEmail}"
.
إذا كنت، القارئ، لديهم نفس المشكلة يرجى النظر في هذه النقاط:
- جيتر / سيتر لكل حقل في الفول
- حقول بدائية!
- طرق أقل حجة إلى "تفويض" الحقول البدائية، على سبيل المثال بلدي طريقة أدمايل
نأمل أن تكون هذه الإجابة مفيدة ل بل وجود نفس المشكلة!
تحياتي، جيور
هذا السؤال له إجابة هنا:
... لذلك لقد حصلت على بلديApplicationScoped الفول "تطبيق" ..:
@ManagedBean(name = "Application")
@ApplicationScoped
public class Application implements Serializable {
private boolean isRunning = false;
private ArrayList<Feed> sentNotifications = new ArrayList<>();
private ArrayList<String> emails = new ArrayList<>(
Arrays.asList("[email protected]", "[email protected]")
);
private LinkedList<String> words = new LinkedList<>(
Arrays.asList("vuln","banana","pizza","bonanza")
);
private LinkedList<String> feeds = new LinkedList<>(
Arrays.asList("http://www.kb.cert.org/vulfeed",
"https://ics-cert.us-cert.gov/advisories/advisories.xml",
"https://ics-cert.us-cert.gov/alerts/alerts.xml")
);
... وتريد إضافة سلسلة إلى ArrayList<String> emails
باستخدام الطريقة:
public String addEmail(String email) {
emails.add(email);
return null;
}
و فاسيليت يذهب على النحو التالي:
<!-- EMAILS -->
<h3>Configured Emails</h3>
<h:form>
<h:inputText value="Email" var="email"/>
<h:commandButton value="Add Email" action="#{Application.addEmail(email)}"/>
</h:form>
<h:form>
<ui:repeat var="email" value="#{Application.emails}">
<tr>
<td>#{email}</td>
<td>
<f:facet name="header">Action</f:facet>
<h:commandLink value="Delete" action="#{Application.rmEmail(email)}"/>
</td>
</tr>
<br></br>
</ui:repeat>
</h:form>
... لذلك عندما أحاول إضافة "[email protected]"، وهذا هو النتيجة:
- هناك حذف زر أظهرت، ولكن ليس سلسلة نفسها؟!
- هو سلسلة أضاف بشكل صحيح - و جسف لا يعيد وجهة نظر ..؟
- ..Or هو سلسلة لم تضاف بشكل صحيح؟
الرجاء المساعدة! شكر.