回答編集履歴

1

実証したコードを記載

2015/09/24 09:15

投稿

BlueMoon
BlueMoon

スコア1339

test CHANGED
@@ -1,9 +1,175 @@
1
- <p:dialog>内側に<h:form>のタグが必要という記事を見つけました。
1
+ Primefaceajaxタグを使用したところ、ダイアログの選択結果反映出来ました。
2
2
 
3
3
 
4
4
 
5
+ 呼び側のページコードです。
6
+
7
+ ```HTML
8
+
9
+ <h:form id="form1">
10
+
11
+ Hello from Facelets
12
+
13
+ <br />
14
+
15
+ <h:inputText id="dummyTextInput" value="#{dfView.atext}" />
16
+
17
+ <p:commandButton value="view" actionListener="#{dfView.viewCars()}" >
18
+
5
- [Primefaces layout + modal dialog のメモ](http://odashinsuke.hatenablog.com/entry/2014/04/12/150424)
19
+ <p:ajax event="dialogReturn" listener="#{dfView.handleReturn}" update="dummyTextInput" />
20
+
21
+ </p:commandButton>
22
+
23
+ </h:form>
24
+
25
+ ```
26
+
27
+ BackingBean
28
+
29
+ ```Java
30
+
31
+ import java.io.Serializable;
32
+
33
+ import javax.enterprise.context.SessionScoped;
34
+
35
+ import javax.inject.Named;
36
+
37
+ import org.primefaces.context.RequestContext;
38
+
39
+ import org.primefaces.event.SelectEvent;
40
+
41
+
42
+
43
+ @Named("dfView")
44
+
45
+ @SessionScoped
46
+
47
+ public class DFView implements Serializable{
48
+
49
+
50
+
51
+ String Atext;
52
+
53
+
54
+
55
+ public void viewCars() {
56
+
57
+ RequestContext.getCurrentInstance().openDialog("viewCars");
58
+
59
+ }
60
+
61
+
62
+
63
+ public void selectCarFromDialog(Car car) {
64
+
65
+ RequestContext.getCurrentInstance().closeDialog(car);
66
+
67
+ }
68
+
69
+
70
+
71
+ public void handleReturn(SelectEvent event) {
72
+
73
+ Car car = (Car) event.getObject();
74
+
75
+ Atext=car.brand;
76
+
77
+ }
78
+
79
+
80
+
81
+ public void selectCar(Car car) {
82
+
83
+ Atext=car.brand;
84
+
85
+ }
86
+
87
+
88
+
89
+
90
+
91
+ public String getAtext() {
92
+
93
+ return Atext;
94
+
95
+ }
96
+
97
+
98
+
99
+ public void setAtext(String Atext) {
100
+
101
+ this.Atext = Atext;
102
+
103
+ }
104
+
105
+
106
+
107
+ }
108
+
109
+
110
+
111
+ ```
112
+
113
+ daialogのページです。
114
+
115
+ ```HTML
116
+
117
+ <h:form>
118
+
119
+ <p:dataTable var="car" value="#{carList.cars}">
120
+
121
+ <p:column headerText="Id">
122
+
123
+ <h:outputText value="#{car.id}" />
124
+
125
+ </p:column>
126
+
127
+
128
+
129
+ <p:column headerText="Year">
130
+
131
+ <h:outputText value="#{car.year}" />
132
+
133
+ </p:column>
134
+
135
+
136
+
137
+ <p:column headerText="Brand">
138
+
139
+ <h:outputText value="#{car.brand}" />
140
+
141
+ </p:column>
142
+
143
+
144
+
145
+ <p:column headerText="Color">
146
+
147
+ <h:outputText value="#{car.color}" />
148
+
149
+ </p:column>
150
+
151
+
152
+
153
+ <p:column headerText="select">
154
+
155
+ <p:commandButton icon="ui-icon-search"
156
+
157
+ actionListener="#{dfView.selectCarFromDialog(car)}" />
158
+
159
+ </p:column>
160
+
161
+
162
+
163
+ </p:dataTable>
164
+
165
+ </h:form>
166
+
167
+ ```
6
168
 
7
169
 
8
170
 
9
171
  ご参考までに。
172
+
173
+
174
+
175
+ ※先の回答は外していたようなので、削除いたしました。