Java 如何解决jsp页面错误?

Java 如何解决jsp页面错误?,java,eclipse,jsp,liferay,Java,Eclipse,Jsp,Liferay,我在java文件中有string-type方法,它包含字符串数组,当我试图调用jsp时,它给了我一个错误 public String[] ordering(ActionRequest actionRequest,ActionResponse actionResponse) throws IOException,PortletException JSP: 错误: Multiple annotations found at this line:- actionResponse ca

我在java文件中有string-type方法,它包含字符串数组,当我试图调用jsp时,它给了我一个错误

public String[] ordering(ActionRequest actionRequest,ActionResponse actionResponse)  
    throws IOException,PortletException
JSP:


错误:

Multiple annotations found at this line:- actionResponse cannot be resolved to a     variabl-actionRequest cannot be resolved to a variable

    Stacktrace:
    javax.portlet.PortletException: org.apache.jasper.JasperException: An exception occurred processing JSP page /html/testi/list.jsp at line 8

    5: 
    6: <% 
    7:   TestiPortlet obj=new TestiPortlet();
    8:   String str[]=obj.ordering(actionRequest,actionResponse);
    9:   out.println(str[0]);
    10: %>
    11: 
在此行找到多个批注:-actionResponse无法解析为变量actionRequest无法解析为变量
堆栈跟踪:
javax.portlet.portleteException:org.apache.jasper.jaspereException:处理第8行的JSP页面/html/testi/list.JSP时发生异常
5: 
6: 
11: 

错误说明了一切,jsp没有找到
actionRequest
actionResponse
对象

这些对象需要包含在JSP中,方法是将以下代码放在JSP的顶部:


正如@RasabihariKumar正确提到的,这不是使用
Portlet
类的方式。对于测试或学习,这可能是好的,但对于实际项目,我认为这不是一个好的做法,因为这些是昂贵的对象,而且使用Portlet作为工具类来处理这样的数据似乎并不正确,这违反了

Portlet类应该用来发送请求(通过使用
renderURL
actionURL
resourceURL
)并获得响应,就像我们对servlet所做的那样

在他之后编辑: 您可以通过wiki获得有用的学习资源链接,我建议您阅读开发者指南和
Liferay-in-Action
Portlet-in-Action
这两本书,了解在Liferay中开发Portlet的最佳方法

目前,最简单的方法是在portlet的
doView
方法中编写代码,呈现portlet JSP页面时会调用该方法,只需从数据库中检索
doView
中的列表,并将其作为请求属性输入即可:

renderRequest.setAttribute(“listAttr”,listFromDatabase)
然后在JSP中使用此
listAttr
,如下所示:

String[]str=(String[])renderRequest.getAttribute(“listAttr”);

查看liferay开发的源代码也可能会有所帮助。

错误说明了一切,您的jsp没有找到
actionRequest
actionResponse
对象

这些对象需要包含在JSP中,方法是将以下代码放在JSP的顶部:


正如@RasabihariKumar正确提到的,这不是使用
Portlet
类的方式。对于测试或学习,这可能是好的,但对于实际项目,我认为这不是一个好的做法,因为这些是昂贵的对象,而且使用Portlet作为工具类来处理这样的数据似乎并不正确,这违反了

Portlet类应该用来发送请求(通过使用
renderURL
actionURL
resourceURL
)并获得响应,就像我们对servlet所做的那样

在他之后编辑: 您可以通过wiki获得有用的学习资源链接,我建议您阅读开发者指南和
Liferay-in-Action
Portlet-in-Action
这两本书,了解在Liferay中开发Portlet的最佳方法

目前,最简单的方法是在portlet的
doView
方法中编写代码,呈现portlet JSP页面时会调用该方法,只需从数据库中检索
doView
中的列表,并将其作为请求属性输入即可:

renderRequest.setAttribute(“listAttr”,listFromDatabase)
然后在JSP中使用此
listAttr
,如下所示:

String[]str=(String[])renderRequest.getAttribute(“listAttr”);

浏览liferay开发的源代码也会有所帮助。

这是一种非常有趣的方法,可以使用参数
ActionRequest
ActionResponse
调用方法。我真的很想知道您在这里试图实现的这个奇妙的用例是什么:-)。你能粘贴整个堆栈跟踪吗,比如这条错误是哪一行。Thanks@RasabihariKumar这是一种非常有趣的方法,可以使用参数
ActionRequest
ActionResponse
调用方法。我真的很想知道您在这里试图实现的这个奇妙的用例是什么:-)。你能粘贴整个堆栈跟踪吗,比如这条错误是哪一行。Thanks@RasabihariKumar展示以上内容然后告诉我该怎么做。。。我有一个portlet类,我尝试使用resultset将记录从数据库提取到portlet类。现在,我想向web浏览器显示我的所有数据。我无法在jsp文件中编写此逻辑。。这就是为什么我使用portlet类进行业务逻辑,使用jsp文件进行显示。请引导我。。如何做到这一点,然后告诉我该怎么做。。。我有一个portlet类,我尝试使用resultset将记录从数据库提取到portlet类。现在,我想向web浏览器显示我的所有数据。我无法在jsp文件中编写此逻辑。。这就是为什么我使用portlet类进行业务逻辑,使用jsp文件进行显示。请引导我。。如何做到这一点
Multiple annotations found at this line:- actionResponse cannot be resolved to a     variabl-actionRequest cannot be resolved to a variable

    Stacktrace:
    javax.portlet.PortletException: org.apache.jasper.JasperException: An exception occurred processing JSP page /html/testi/list.jsp at line 8

    5: 
    6: <% 
    7:   TestiPortlet obj=new TestiPortlet();
    8:   String str[]=obj.ordering(actionRequest,actionResponse);
    9:   out.println(str[0]);
    10: %>
    11: