我想处理这个表单(value eChangueListener在真实情况下无效)。
这是后台bean:
@Component
@Scope("request")
public class TestBean extends PrivateBaseBean implements Serializable {
protected static final Logger logger = Utils.loggerForThisClass();
private TreeNode root;
@PostConstruct
public void init() {
root = new DefaultTreeNode("root", null);
TreeNode child1 = new DefaultTreeNode(new Element("Total"), root);
new DefaultTreeNode(new Element("Office"), child1);
}
public void saveAction() {
StringBuilder textToShowInMessage = new StringBuilder();
for (TreeNode children : root.getChildren()) {
logger.debug(((Element) children.getData()).getName() + "->"
+ ((Element) children.getData()).getValue());
for (TreeNode leaf : children.getChildren()) {
logger.debug(((Element) leaf.getData()).getName() + "->"
+ ((Element) leaf.getData()).getValue());
}
}
}
public TreeNode getRoot() {
return root;
}
public void setRoot(TreeNode root) {
this.root = root;
}
元素模型:
public class Element {
private String name;
private String value;
public Element(String name) {
super();
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
最后,有人认为:
<h:form>
<p:treeTable value="#{testBean.root}" var="element">
<p:column>
<f:facet name="header">
Name
</f:facet>
#{element.name}
</p:column>
<p:column>
<f:facet name="header">
Value
</f:facet>
<h:inputText value="#{element.value}" />
</p:column>
</p:treeTable>
<p:commandButton value="#{msg.save}" action="#{testBean.saveAction}"
process="@all" icon="ui-icon-disk" update="@form" />
</h:form>
我还想处理TreeNode中的所有表单值。但在支持bean中只接收第一个childresn的第一个值。
这是输入:
这是输出:
DEBUG: com.smf.web.jsf.bean.TestBean - Total->1231231231
DEBUG: com.smf.web.jsf.bean.TestBean - Office->null
我不知道如何处理所有的树值。。。
一个解决方案是:
1.让我们用树和元素对象创建会话对象数组:
@Component
@Scope("session")
public class SessionObject {
private Object[] root;
public Object[] getRoot() {
return root;
}
public void setRoot(Object[] root) {
this.root = root;
}
}
2.注入TestBean:
@Autowired
private SessionObject sessionObject;
3.在init()方法中,我们必须在会话中保存所有内容:
Object[] array = new Object[] { root, element, element2 };
sessionObject.setRoot(array);
4.最后,在SaveAction()中,我们可以恢复具有新值的元素:
for (TreeNode children : ((DefaultTreeNode) ((Object[]) sessionObject
.getRoot())[0]).getChildren()) {
....
是必要的每一个元素在会话:
后座:
@Component
@Scope("request")
public class TestBean extends PrivateBaseBean implements Serializable {
@Autowired
private SessionObject sessionObject;
protected static final Logger logger = Utils.loggerForThisClass();
private TreeNode child1;
private Element element;
private Element element2;
@PostConstruct
public void init() {
sessionObject = new SessionObject();
element = new Element("Total");
element2 = new Element("Oficina");
TreeNode root = new DefaultTreeNode("root", null);
child1 = new DefaultTreeNode(element, root);
new DefaultTreeNode(element2, root);
Object[] array = new Object[] { root, element, element2 };
sessionObject.setRoot(array);
}
public void saveAction() {
for (TreeNode children : ((DefaultTreeNode) ((Object[]) sessionObject
.getRoot())[0]).getChildren()) {
logger.debug(((Element) children.getData()).getName() + "->"
+ ((Element) children.getData()).getValue());
for (TreeNode leaf : children.getChildren()) {
logger.debug(((Element) leaf.getData()).getName() + "->"
+ ((Element) leaf.getData()).getValue());
}
}
}
public TreeNode getRoot() {
return ((DefaultTreeNode) ((Object[]) sessionObject.getRoot())[0]);
}
public void setRoot(TreeNode root) {
Object[] array = new Object[] { root, element, element2 };
sessionObject.setRoot(array);
}
}
现在输出:
DEBUG: com.smf.web.jsf.bean.TestBean - Total->TotalValue
DEBUG: com.smf.web.jsf.bean.TestBean - Oficina->OfficeValue
更多详情请在这里询问。.
我想处理此表单(valueChangueListener在实际情况下无效)。 这是后台bean: 以下是一个观点: 在后台bean字符串列表中处理表单时,始终为空。 如何在没有任何值的情况下处理表单输入的内部迭代? 上的action或actionListener也会出现同样的问题
h:inputText标记呈现“text”类型的HTML输入元素。 JSF标签 (JSF Tag) <h:inputText value = "Hello World!" /> 渲染输出 (Rendered Output) <input type = "text" name = "j_idt6:j_idt8" value = "Hello World!" /> 标签属性 (Tag Attri
主要内容:JSF <h:InputText>标签示例,2)创建托管Bean,JSF渲染<h:inputText>标签如下:,4)运行应用程序,JSF <h:inputText> 标签的属性JSF 标签用于呈现网页上的输入字段。它在标签中用于声明允许用户输入数据的输入字段。 属性指的是名为的委托的属性。该属性保存名称组件的数据。 用户提交表单后,中的属性的值将被设置为与该标签对应的字段中输入的文本。 打开 NetBean8.2,创建一个名称为:htags的JSF工程,然后按以下步骤添加相应文件和代
我是Spring批处理的新手,我只想问如何从多行结果集中检索数据。我有以下场景: > 有两个不同的表说员工 使用时,我只能创建一个工资单子级,但该表可能有多个子级。请帮助...
ANTLR4书引用了一个多模式示例 https://github.com/stfairy/learn-antlr4/blob/master/tpantlr2-code/lexmagic/ModeTagsLexer.g4 https://github.com/stfairy/learn-antlr4/blob/master/tpantlr2-code/lexmagic/ModeTagsParser.
我是PowerShell的新手。我正在尝试创建一个脚本,它将通过CSV和Active Directory组进行查看。如果用户不在CSV中,我想删除该用户(当前正在使用写输出进行测试)。我必须使用UserPrincipalName。我的CSV只是 排名,编号 某物,3333//此用户是AD GROUP 某物,2222//此用户不在AD组中 目前,我想让它只输出3333,但它两者都输出。 导入模块活动