Hallo zusammen,
ich erstelle gerade eine kleine web-applikation in jsf 1.2 inkl. eclipselink-jpa. in einer h:selectOneListBox soll eine kategorie gewählt und mittels commandbutton eine funktion aufgerufen werden, die die ausgewählte kategorie als selektiert setzt und mit dem rückgabewert eine weiterleitung zur nächsten seite einleitet. es funktioniert leider nicht. die funktion wird nicht einmal aufgerufen. wenn ich die selectOneListBox entferne, funktioniert der funktionsaufruf, der rückgabewert leitet erwartungsgemäß auch die weiterleitung ein.
ich raff einfach net, wo da das problem steckt. hier meine code-schnipsel:
die jsp-seite
hier die bean:
hier die super-bean:
hier der converter:
und hier der html-sourcecode:
das java-script ist von tomahawk. wenn ich tomahawk aus dem build-path entferne, ist auch javascript weg, aber das problem bleibt.
ich hab wirklich alles möglich versucht, aber es will net. wäre euch sehr verbunden, wenn ihr eine lösung hättet, bzw. die fehler findet.
ach ja, die umgebung:
myfaces 1.2.9
jstl 1.1
tomahawk12 1.1.9
ich erstelle gerade eine kleine web-applikation in jsf 1.2 inkl. eclipselink-jpa. in einer h:selectOneListBox soll eine kategorie gewählt und mittels commandbutton eine funktion aufgerufen werden, die die ausgewählte kategorie als selektiert setzt und mit dem rückgabewert eine weiterleitung zur nächsten seite einleitet. es funktioniert leider nicht. die funktion wird nicht einmal aufgerufen. wenn ich die selectOneListBox entferne, funktioniert der funktionsaufruf, der rückgabewert leitet erwartungsgemäß auch die weiterleitung ein.
ich raff einfach net, wo da das problem steckt. hier meine code-schnipsel:
die jsp-seite
Code:
<f:view>
<h:form>
<h:panelGrid columns="1" border="1">
<f:facet name="header">
<h:outputText value="Poisen" />
</f:facet>
<h:column>
<h:outputText value="Hauptkategorie wählen" />
</h:column>
<h:column>
<h:selectOneListbox converter="converterCategory" value="#{categoryAList.current}">
<f:selectItems value="#{categoryAList.selectItems}" />
</h:selectOneListbox>
</h:column>
<h:column>
<h:commandButton action="#{categoryAList.selectCategory}" value="Weiter" />
</h:column>
</h:panelGrid>
</h:form>
</f:view>
hier die bean:
Code:
public class CategoryAListBean extends ListBean<CategoryA> {
public CategoryAListBean() {
super();
setList(pdbb.getCategoriesA());
current = getList().get(0);
getListModel().setWrappedData(getList());
}
public List<SelectItem> getSelectItems() {
List<SelectItem> selectItems = new ArrayList<SelectItem>();
for (CategoryA category : pdbb.getCategoriesA()) {
selectItems.add(new SelectItem(category, category.getTitle()));
}
return selectItems;
}
public String selectCategory() {
this.current = (CategoryA) getListModel().getRowData();
return "showCategoriesB";
}
}
hier die super-bean:
Code:
public class ListBean<T> {
private List<T> list;
private DataModel listModel;
protected T current;
protected POIsenDBBean pdbb;
protected FacesContext fc;
public ListBean() {
fc = FacesContext.getCurrentInstance();
pdbb = (POIsenDBBean) fc.getApplication().evaluateExpressionGet(fc,
"#{poisenDB}", POIsenDBBean.class);
setListModel(new ListDataModel());
}
public T getCurrent() {
return current;
}
public void setCurrent(T obj) {
this.current = obj;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
getListModel().setWrappedData(list);
}
public void setListModel(DataModel listModel) {
this.listModel = listModel;
}
public DataModel getListModel() {
return listModel;
}
public int getLength() {
return this.list.size();
}
}
hier der converter:
Code:
public class ConverterCategory implements Converter {
public Object getAsObject(FacesContext fc, UIComponent uic, String str)
throws ConverterException {
POIsenDBBean pdbb = (POIsenDBBean) fc.getApplication()
.evaluateExpressionGet(fc, "#{poisenDB}", POIsenDBBean.class);
return pdbb.getCategoryA(Integer.parseInt(str));
}
public String getAsString(FacesContext fc, UIComponent uic, Object o)
throws ConverterException {
CategoryA categoryA = (CategoryA) o;
return String.valueOf(categoryA.getId());
}
}
und hier der html-sourcecode:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>POIsen - Choose Main-Category</title>
</head>
<body>
<form id="j_id_jsp_1210723754_1" name="j_id_jsp_1210723754_1" method="post" action="/POIsen/categoryA.faces" enctype="application/x-www-form-urlencoded">
<table border="1">
<thead>
<tr>
<th scope="colgroup" colspan="1">Poisen</th>
</tr>
</thead>
<tbody>
<tr>
<td>Hauptkategorie wählen</td>
</tr>
<tr>
<td><select name="j_id_jsp_1210723754_1:j_id_jsp_1210723754_7" size="8">
<option value="1" selected="selected">Transport & Verkehr</option>
<option value="2">Medizin</option>
<option value="3">Reise & Hotel</option>
<option value="4">Freizeit</option>
<option value="5">Einkaufen</option>
<option value="6">Öffentliche Einrichtung</option>
<option value="7">Dienstleistung</option>
<option value="8">Gastronomie</option>
</select></td>
</tr>
<tr>
<td><script type="text/javascript"><!--
function oamSetHiddenInput(formname, name, value)
{
var form = document.forms[formname];
if (typeof form == 'undefined')
{
form = document.getElementById(formname);
}
if(typeof form.elements[name]!='undefined' && (form.elements[name].nodeName=='INPUT' || form.elements[name].nodeName=='input'))
{
form.elements[name].value=value;
}
else
{
var newInput = document.createElement('input');
newInput.setAttribute('type','hidden');
newInput.setAttribute('id',name);
newInput.setAttribute('name',name);
newInput.setAttribute('value',value);
form.appendChild(newInput);
}
}
function oamClearHiddenInput(formname, name, value)
{
var form = document.forms[formname];
if (typeof form == 'undefined')
{
form = document.getElementById(formname);
}
var hInput = form.elements[name];
if(typeof hInput !='undefined')
{
form.removeChild(hInput);
}
}
function oamSubmitForm(formName, linkId, target, params)
{
var clearFn = 'clearFormHiddenParams_'+formName.replace(/-/g, '\$:').replace(/:/g,'_');
if(typeof window[clearFn] =='function')
{
window[clearFn](formName);
}
if(typeof window.getScrolling!='undefined')
{
oamSetHiddenInput(formName,'autoScroll',getScrolling());
}
var form = document.forms[formName];
if (typeof form == 'undefined')
{
form = document.getElementById(formName);
}
var oldTarget = form.target;
if(target != null)
{
form.target=target;
}
if((typeof params!='undefined') && params != null)
{
for(var i=0, param; (param = params[i]); i++)
{
oamSetHiddenInput(formName,param[0], param[1]);
}
}
oamSetHiddenInput(formName,formName +':'+'_idcl',linkId);
if(form.onsubmit)
{
var result=form.onsubmit();
if((typeof result=='undefined')||result)
{
try
{
form.submit();
}
catch(e){}
}
}
else
{
try
{
form.submit();
}
catch(e){}
}
form.target=oldTarget;
if((typeof params!='undefined') && params != null)
{
for(var i=0, param; (param = params[i]); i++)
{
oamClearHiddenInput(formName,param[0], param[1]);
}
}
oamClearHiddenInput(formName,formName +':'+'_idcl',linkId);return false;
}
//--></script><input id="j_id_jsp_1210723754_1:j_id_jsp_1210723754_10" name="j_id_jsp_1210723754_1:j_id_jsp_1210723754_10" type="submit" value="Weiter"
onclick="if(typeof window.getScrolling!='undefined'){oamSetHiddenInput('j_id_jsp_1210723754_1','autoScroll',getScrolling());}" /> <input type="hidden" name="autoScroll" /> <input
id="j_id_jsp_1210723754_1:j_id_jsp_1210723754_11" name="j_id_jsp_1210723754_1:j_id_jsp_1210723754_11" type="submit" value="showCategoriesB"
onclick="if(typeof window.getScrolling!='undefined'){oamSetHiddenInput('j_id_jsp_1210723754_1','autoScroll',getScrolling());}" /></td>
</tr>
</tbody>
</table>
<input type="hidden" name="j_id_jsp_1210723754_1_SUBMIT" value="1" /><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState"
value="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" /></form>
</body>
</html>
das java-script ist von tomahawk. wenn ich tomahawk aus dem build-path entferne, ist auch javascript weg, aber das problem bleibt.
ich hab wirklich alles möglich versucht, aber es will net. wäre euch sehr verbunden, wenn ihr eine lösung hättet, bzw. die fehler findet.
ach ja, die umgebung:
myfaces 1.2.9
jstl 1.1
tomahawk12 1.1.9
Zuletzt bearbeitet: