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