XMLInfo xml =  aMapping.get(path);
 String username=request.getParameter("username");
// String password=request.getParameter("password");
 
 if(xml!=null){
 String className = xml.getClassName();
 try {
Class cls =Class.forName(className);
//设置action类当中所有属性的值
Method method = cls.getMethod("execute",new Class[]{null});//这里怎样把参数传到action中的execute方法中

String result = (method.invoke(cls.newInstance(), null)).toString();
//把值传递到前台
//System.out.println(xml.getResult().get(resultName));
System.out.println(result);
request.getRequestDispatcher(xml.getResult().get(result).toString()).forward(request, response);public String execute(){

return "error.jsp"; }
这个方法为什么老是返回error啊还有那个struts.xml文件为什么要放在tomcat下面才可以解悉

解决方案 »

  1.   

    我表示完全没看懂你啥意思 你这个是个Action吧 如果是action,就更简单了,struts会直接把你传过来的参数直接赋给action对应的成员变量。你直接在action里定义对应的变量,然后写好getter和setter就行了。
      

  2.   

    Method method = cls.getMethod("execute",new Class[]{null});//这里是获取名称为
    execute的方法
    String result = (method.invoke(cls.newInstance(), null)).toString();//这里是执行execute方法这里是通过反射调用的execute,所以应该你得看execute的源码是怎么写的哦
      

  3.   

    看错你意思了,参数是在invoke(cls.newInstance(), null)里面传的,你写的null,其实如果没有参数你还可以试一下invoke(cls.newInstance()),null的位置就是你要传的参数数组
      

  4.   

    struts1.x 中用request.getParameter("paramName");struts2.x 中直接在action中声明好页面上将要传过来的值对应属性,然后再页面的标签中name的名字和action中的属性名对应,这样struts2的核心控制器会将值放到对应的属性上,你在action中直接用属性就好了,不用再作多余的操作。
      

  5.   

    懂你们的意思,项目里面添加struts2时action里面的属性可以获得页面传过来的值,但我自定义框架时actin里面的属性就得不到页面的值的 百思不得其解