struts-config.xml配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<data-sources>
<data-source>
<set-property value="false" property="autoCommit" />
<set-property value="Example Data Source Configuration" property="description" />
<set-property value="com.microsoft.jdbc.sqlserver.SQLServerDriver" property="driverClass" />
<set-property value="20" property="maxCount" />
<set-property value="10" property="minCount" />
<set-property value="sa" property="user"/>
<set-property value="hongyang" property="password" />
<set-property value="jdbc:microsoft:sqlserver//j2eeserver:1433;DatabaseName=hydata" property="url" />
</data-source>
</data-sources>
<form-beans>
<form-bean name="lykForm" type="strutstest.lykForm" />
<form-bean name="lyk" type="strutstest.lyk" />
</form-beans>
<action-mappings>
<action name="lykForm" type="strutstest.lykAction" validate="false" scope="request" path="/lykAction" />
</action-mappings>
</struts-config>lykAction.java文件如下:(大家看看数据库的调用对吗?)
package strutstest;/**
* Title:lykAction.java
* Description: lykAction文件:用于实现分页、记录删除、编辑、更新、连接等功能
* Copyright: Copyright (c) 2003/12/06
* Company: hongyang
* Author : linsr
* Version 2.0
*/
import strutstest.lykDAO;import java.lang.reflect.InvocationTargetException;
import java.util.Locale;
import javax.servlet.ServletException;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.util.ModuleException;
import org.apache.struts.util.MessageResources;import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Collection;
import javax.sql.DataSource;
public final class lykAction extends Action {
//定义变量
DataSource dataSource;
Connection con;
private Log log = LogFactory.getLog("org.apache.struts.webapp.Example");
//private SimpleConnetionPool pool;
public lykAction(){
} //函数定义:
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
{
// Extract attributes and parameters we will need Locale locale = getLocale(request);
MessageResources messages = getResources(request);
HttpSession session = request.getSession();
lykForm m_lykForm = (lykForm) form; try{
//用于连接数据库,具体在struts-config.xml中配置
dataSource = getDataSource(request);
con = dataSource.getConnection();
lykDAO m_lykDAO = new lykDAO(con);
String action=request.getParameter("action");
if(action==null)action="find";
if(action.equals("delete"))
{
String expression=request.getParameter("expression");
m_lykDAO.removeID(expression);
}
if(action.equals("update"))
{
String expression=request.getParameter("expression");
lyk m_lyk= new lyk();
//<update>
m_lyk.setUser_id(m_lykForm.getUser_id());
m_lyk.setPassword(m_lykForm.getPassword());
m_lyk.setName(m_lykForm.getName());
m_lyk.setDescription(m_lykForm.getDescription());
m_lyk.setWeb_site(m_lykForm.getWeb_site());
m_lyk.setAddress(m_lykForm.getAddress());
//</update> m_lykDAO.update(m_lyk,expression);
}
///////////////
//<sqlstr>
String sql="SELECT * FROM dbo.attraction";
//</sqlstr>
Collection col = m_lykDAO.findSQL(sql);
request.setAttribute("lyk",col); //<分页>
m_lykForm.setRowCount(col.size());
m_lykForm.setLength(5);//设置每页显示记录数 String page=request.getParameter("page");
int ipage;
try
{
ipage=java.lang.Integer.parseInt(page,10);
}
catch (Exception e)
{
ipage=m_lykForm.getPage();
}
m_lykForm.setPage(ipage);
m_lykForm.setOffset(ipage*m_lykForm.getLength());
m_lykForm.setPageCount(m_lykForm.getRowCount()/m_lykForm.getLength()+1); String strPage=""; strPage+="共";
strPage+=String.valueOf(m_lykForm.getRowCount());
strPage+="条记录,共";
strPage+=String.valueOf(m_lykForm.getPageCount());
strPage+="页,当前是第";
strPage+=String.valueOf(ipage+1);
strPage+="页, "; int istart,iend;
istart=ipage-5;
if(istart<0) {istart=0;}
iend=istart+10;
if(iend>m_lykForm.getPageCount()) {iend=m_lykForm.getPageCount();}
istart=iend-10;
if(istart<0) {istart=0;}
for(int i=istart;i<iend;i++)
{
strPage+="<a href='lykAction.do?action=find&page=";
strPage+=String.valueOf(i);
strPage+="'>";
strPage+=String.valueOf(i+1);
strPage+="</a>";
strPage+=" ";
} m_lykForm.setMybeanvariable1(strPage);
m_lykForm.setAction(action);
request.setAttribute("lykForm",m_lykForm);
//</分页> return mapping.findForward("success");
}
catch (Exception e)
{
e.printStackTrace();
throw new RuntimeException("Unable to get connection.");
}
finally
{
try
{
if (con != null)
con.close();
}
catch (SQLException e)
{
throw new RuntimeException(e.getMessage());
}
} }}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<data-sources>
<data-source>
<set-property value="false" property="autoCommit" />
<set-property value="Example Data Source Configuration" property="description" />
<set-property value="com.microsoft.jdbc.sqlserver.SQLServerDriver" property="driverClass" />
<set-property value="20" property="maxCount" />
<set-property value="10" property="minCount" />
<set-property value="sa" property="user"/>
<set-property value="hongyang" property="password" />
<set-property value="jdbc:microsoft:sqlserver//j2eeserver:1433;DatabaseName=hydata" property="url" />
</data-source>
</data-sources>
<form-beans>
<form-bean name="lykForm" type="strutstest.lykForm" />
<form-bean name="lyk" type="strutstest.lyk" />
</form-beans>
<action-mappings>
<action name="lykForm" type="strutstest.lykAction" validate="false" scope="request" path="/lykAction" />
</action-mappings>
</struts-config>lykAction.java文件如下:(大家看看数据库的调用对吗?)
package strutstest;/**
* Title:lykAction.java
* Description: lykAction文件:用于实现分页、记录删除、编辑、更新、连接等功能
* Copyright: Copyright (c) 2003/12/06
* Company: hongyang
* Author : linsr
* Version 2.0
*/
import strutstest.lykDAO;import java.lang.reflect.InvocationTargetException;
import java.util.Locale;
import javax.servlet.ServletException;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.util.ModuleException;
import org.apache.struts.util.MessageResources;import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Collection;
import javax.sql.DataSource;
public final class lykAction extends Action {
//定义变量
DataSource dataSource;
Connection con;
private Log log = LogFactory.getLog("org.apache.struts.webapp.Example");
//private SimpleConnetionPool pool;
public lykAction(){
} //函数定义:
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
{
// Extract attributes and parameters we will need Locale locale = getLocale(request);
MessageResources messages = getResources(request);
HttpSession session = request.getSession();
lykForm m_lykForm = (lykForm) form; try{
//用于连接数据库,具体在struts-config.xml中配置
dataSource = getDataSource(request);
con = dataSource.getConnection();
lykDAO m_lykDAO = new lykDAO(con);
String action=request.getParameter("action");
if(action==null)action="find";
if(action.equals("delete"))
{
String expression=request.getParameter("expression");
m_lykDAO.removeID(expression);
}
if(action.equals("update"))
{
String expression=request.getParameter("expression");
lyk m_lyk= new lyk();
//<update>
m_lyk.setUser_id(m_lykForm.getUser_id());
m_lyk.setPassword(m_lykForm.getPassword());
m_lyk.setName(m_lykForm.getName());
m_lyk.setDescription(m_lykForm.getDescription());
m_lyk.setWeb_site(m_lykForm.getWeb_site());
m_lyk.setAddress(m_lykForm.getAddress());
//</update> m_lykDAO.update(m_lyk,expression);
}
///////////////
//<sqlstr>
String sql="SELECT * FROM dbo.attraction";
//</sqlstr>
Collection col = m_lykDAO.findSQL(sql);
request.setAttribute("lyk",col); //<分页>
m_lykForm.setRowCount(col.size());
m_lykForm.setLength(5);//设置每页显示记录数 String page=request.getParameter("page");
int ipage;
try
{
ipage=java.lang.Integer.parseInt(page,10);
}
catch (Exception e)
{
ipage=m_lykForm.getPage();
}
m_lykForm.setPage(ipage);
m_lykForm.setOffset(ipage*m_lykForm.getLength());
m_lykForm.setPageCount(m_lykForm.getRowCount()/m_lykForm.getLength()+1); String strPage=""; strPage+="共";
strPage+=String.valueOf(m_lykForm.getRowCount());
strPage+="条记录,共";
strPage+=String.valueOf(m_lykForm.getPageCount());
strPage+="页,当前是第";
strPage+=String.valueOf(ipage+1);
strPage+="页, "; int istart,iend;
istart=ipage-5;
if(istart<0) {istart=0;}
iend=istart+10;
if(iend>m_lykForm.getPageCount()) {iend=m_lykForm.getPageCount();}
istart=iend-10;
if(istart<0) {istart=0;}
for(int i=istart;i<iend;i++)
{
strPage+="<a href='lykAction.do?action=find&page=";
strPage+=String.valueOf(i);
strPage+="'>";
strPage+=String.valueOf(i+1);
strPage+="</a>";
strPage+=" ";
} m_lykForm.setMybeanvariable1(strPage);
m_lykForm.setAction(action);
request.setAttribute("lykForm",m_lykForm);
//</分页> return mapping.findForward("success");
}
catch (Exception e)
{
e.printStackTrace();
throw new RuntimeException("Unable to get connection.");
}
finally
{
try
{
if (con != null)
con.close();
}
catch (SQLException e)
{
throw new RuntimeException(e.getMessage());
}
} }}
1、你是否直接运行:“http://localhost:8080/strutstest/lykOUT.jsp”,如果是这样就会出现“javax.servlet.ServletException: Cannot find bean lykForm in any scope”的提示,因为lykOUT.jsp中的lykForm没有数据来源。应运行:“http://localhost:8080/strutstest/lykAction.do“.2、你的lykForm.java文件在那里?上面好像没有。当然,如果没有lykForm.java文件,编译lykAction.java等文件是通不过的。3、上述代码好像是JSPStudio自动产生的代码,如果是用JSPStudio开发,出上述问题的可能会少一些,因为所有的代码是自动产生的,所有的配置也是自动完成的。如果不是用JSPStudio,那么 wafer_w(流浪的风) 说的可能性也是有的,就是class文件存放的目录是否对了、配置是否都对了等。新年了,祝你好运!
<jsp:useBean id="FeDelivSyousaiInfo" scope="request" class="Fe.JOB.FeDelivSyousaiInfo" />
id是在ACTION结束是setAttribute的名字
class是BEAN的具体位置!
我的struts-config.xml文件:
<struts-config>
<!-- ========== Form Bean Definitions ================================= -->
<form-beans>
<form-bean name="DelivSyousai" type="Fe.JOB.FeDelivSyousaiForm"/>
</form-beans> <!-- ========== Action Mapping Definitions ============================== -->
<action-mappings>
<action path="/Deliv_Syousai"
type="Fe.JOB.FeDelivSyousaiAction"
name="DelivSyousai"
scope="request"
validate="true"
input="menudetail.jsp">
<forward name="success" path="/web/JOB/DelivSyousai.jsp"/>
</action>
</action-mappings>
</struts-config>我的Action文件(只贴出和BEAN有关的部分):
public ActionForward doAction(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException,ServletException {
form DelivSyousaiForm = new form();
request.setAttribute("DelivSyousaiForm",DelivSyousaiForm );我的JSP文件(只贴出和BEAN有关的部分):
<jsp:useBean id="DelivSyousaiForm " scope="request" class="Fe.JOB.FeDelivSyousaiForm" />
<!-- 然后就可以使用BEAN里的数据了!-->
<html:hidden property="txt_DELIV_CHOICE" value="<%=DelivSyousaiForm.gettxt_DELIV_CHOICE()%>"/>
还有,你从ACTION出来之前,看一下BEAN里有没有数据,就是在request.setAttribute之前看一下,上个页面的数据是否传过来了.
[email protected]
你看看
新增功能有:
1、在打"."自动提示方面进行了改进,所有的库函数和项目中自己编写的类的函数都能自动提示;
2、在支持Struts标签的可视化编辑方面进行了完善;
3、对数据库应用中的表格自动分页方法进行了改进;
4、支持单片机的C语言(C51)开发和编译;
5、支持单片机的汇编语言(A51)开发和编译;
6、增加了双击出错信息自动跳转到错行的功能。
能用email给我一份JSPStudio啊,
[email protected]
JSPStudio压缩后还有100多M,不能用E_mail。但我可以把JSPStudio自动生成的Hello程序发结你,如果你有这样的需求的话。
<html:html>
<head>
<title></title>
<html:base/>
</head>
<body bgcolor="white">
<html:form action= "action">
引号中的action是你在struts-config.xml里配置的该form提交时所用到的action的名字.
<html:form action>之前就用到了'lykForm' ,这是不行的,要么把<html:form action>这句放到最前面去,要么先用<jsp:userbean将'lykForm'定义一下,不然是不能直接使用的.所以会出现找不到的错误