hiii..i am new to struts 2 framework...i developed my jsp code into sturs frame work...but its showing some warning and the "menujsp.jsp" page is not opening...its showing the following on my log:
WARNING: Could not find action or result There is no Action mapped for namespace [/] and action name [menujsp] associated with context path [/Basic]. - [unknown location] at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185) at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63) at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39) at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:500) at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Unknown Source)
Following are the contents of my application:
ConnectionProvider.java
package pkg; import java.sql.Connection; import java.sql.DriverManager; public class ConnectionProvider { public static Connection getConnection(){ Connection con=null; try{ Class.forName("org.postgresql.Driver"); con=DriverManager.getConnection("jdbc:postgresql://localhost:5433/labway","postgres","sachin"); } catch(Exception e){ System.out.println(e); } return con; } }
DAO.java:
package pkg; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.*; public class DAO { public List<MenuList> fetch(){ try{ Connection con=ConnectionProvider.getConnection(); PreparedStatement stmt=con.prepareStatement("select * from application where application_id in (select distinct application_id from applicationmenu order by application_id)"); ResultSet rs=stmt.executeQuery(); ResultSet rs1=null; MenuList menulist; List<MenuList> list=new ArrayList<MenuList>(); while(rs.next()){ menulist=new MenuList(); menulist.setmenuId(rs.getString(1)); menulist.setmenuTitle(rs.getString(3)); PreparedStatement stmt1=con.prepareStatement("select * from menu where menu_id in (select menu_id from applicationmenu where application_id='"+rs.getString(1)+"')"); rs1=stmt1.executeQuery(); menulist.setsubmenuTitle(rs1.getString(3)); list.add(menulist); } return list; } catch(Exception e) { System.out.println(e); } return null; }
"MenuList.java":
package pkg; public class MenuList { String menuId; String menuTitle; String submenuTitle; public MenuList() { super(); } public MenuList(String menuId,String menuTitle,String submenuTitle) { super(); this.menuId=menuId; this.menuTitle=menuTitle; this.submenuTitle=submenuTitle; } public String getMenuId() { return menuId; } public String getmenuTitle() { return menuTitle; } public String submenuTitle() { return submenuTitle; } public void setmenuId(String menuId) { this.menuId = menuId; } public void setmenuTitle(String menuTitle) { this.menuTitle = menuTitle; } public void setsubmenuTitle(String submenuTitle) { this.submenuTitle = submenuTitle; } }
MenuListAction.java:
package pkg; import java.util.*; import com.opensymphony.xwork2.ActionSupport; public class MenuListAction extends ActionSupport { private MenuList menulist; private List<MenuList> menulistlist; DAO dao=new DAO(); public String execute() { menulistlist=dao.fetch(); return "success"; } public MenuList getMenulist() { return menulist; } public void setMenulist(MenuList menulist) { this.menulist = menulist; } public List<MenuList> getMenulistlist() { return menulistlist; } public void setMenulistlist(List<MenuList> menulistlist) { this.menulistlist = menulistlist; } }
web.xml :
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <welcome-file-list> <welcome-file>index</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
struts.xml :
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="true"></constant> <package name="Basic" extends="struts-default"> <action name="fetch" class="pkg.MenuListAction" method="execute"> <result name="success" >/menujsp.jsp</result> </action> </package> </struts>
index.jsp :
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@taglib uri="/struts-tags" prefix="s" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <head><title>DYNAMIC DROPDOWN MENU</title></head> <body><br><br><center> <a href="menujsp.jsp">Home Page</a> </center> </body> </html>
menujsp.jsp :
<%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <style> body{ background-image:ur(C:\indian-flag-12.gif) no-repeat ; font-family:arial;} table{font-size:80%;background:black} a{color:black;text-decoration:none;font:bold} a:hover{color:#606060} td.menu{background:lightgrey} table.menu { font-size:100%; position:absolute; visibility:hidden; } </style> <script type="text/javascript"> function showmenu(elmnt) { document.getElementById(elmnt).style.visibility="visible"; } function hidemenu(elmnt) { document.getElementById(elmnt).style.visibility="hidden"; } </script> </head> <body> <h3>EMPLOYMENT EXCHANGE Test Page</h3> <table width="100%"> <tr bgcolor="#FG8080"> <s:iterator value="menulistlist" var="menulist"> <td onmouseover="showmenu(<s:property value="#parent.menuId"/>)" onmouseout="hidemenu(<s:property value="#parent.menuId"/>)"> <a href="/default.asp"><s:property value="#parent.menuTitle"/></a><br /> <table class="menu" id="<s:property value="#parent.menuId"/>" width="120"> <s:iterator value="menulistlist" var="menulist"> <tr><td class="menu" id="<s:property value="#parent.menuId"/>"><a href="/html/default.asp"><s:property value="submenuTitle"/></a></td></tr> </s:iterator> </s:iterator> </table> </td> </body> </html>
plzz help me out...i might have problem in my struts.xml...its not mapping with the action resource my menujsp.jsp code must also be incorrect but thats another issue...first i need to display this jsp whic isn't happening... regards Sachin
Ads