Struts request parameter auslesen

hallo,

ich hab ein kleines problem mit java struts

ich versuche die request parameter aus einem link auszulesen, bekomme da aber immer exceptions…

den html link bau ich mir im .jsp so zusammen:

[lesen]

was auch zu funktionieren scheint, denn wenn ich die seite oeffne bekomme ich einen scheinbar richtigen link:

http://localhost:8080/roomexv3/readMessage.do?IDmessage=24

(die id kommt korrekt aus der datenbank)

wenn ich nun aber in der readMessageAction auf die id zugreifen will mit:

int id = 0;
try {
id = Integer.parseInt(request.getParameter(„IDmessage“));
} catch (Exception ex) {
System.err.println(ex);
}

bekomme ich nur seltsame exceptions

exception

javax.servlet.ServletException: BeanUtils.populate
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:495)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:805)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1773)
org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:1759)
org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1648)
org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:1677)
org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1022)
org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:493)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:805)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

weiss jmd woran das liegen koennte?

hallo,

weiss jmd woran das liegen koennte?

Zu einer Action gehoert idR auch eine ActionForm, die quasi die
Eingabemaske repraesentiert. (Stichworte: action mapping, form-bean)
Deine Form braeuchte noch getIDMessage() und setIDMessage([type]).

In der Action kannst du dann direkt auf die ActionForm zugreifen.
In etwa so:

public ActionForward execute(ActionMapping mapping,
 ActionForm form,
 ServletRequest request,
 ServletResponse response)
...
 int id = 0;
 try {
 id = Integer.parseInt(((MyActionForm) form).getIDMessage());
 } catch (Exception ex) {
 System.err.println(ex);
 }
}

Wenn dein Getter einen int zurueckgibt, dann kannst du dir
Integer.parseInt sparen. Der Setter muss dann aber entsprechend
so aussehen: setIDMessage(int val)

Wenn das nicht hilft, poste mal dein action mapping und ggfs.
deine ActionForm.

Gruss, Patrick

jo danke dir, aber es lag scheinbar daran, das ich die gleiche paramProperty und paramID benutzt habe… ich habs mal geaendert, und schon gings wunderbar

das sind immer die schlimmsten fehler :confused: da fummle ich bestimmt schon seit 3-4 tage rum :frowning:

aber danke trotzdem…

gruss

fabian

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]