QQ:13628198 遇到的第一个struts的例子就没弄对.各位老大帮帮忙.谢谢。Email:z4b@163.com

z4b 2004-09-11 04:29:12
这是 mastering jakarta struts 第三章的小例子.

我按照那上面弄了可是一提交就停留在lookup.do 页面,弄了一天也没弄好。请各位老大帮帮忙.谢谢。
下面是各个文件的代码。请各位老大帮我看看。谢谢拉。

1. index.jsp

<%@ page language="java" %>
<%@ taglib
uri="/WEB-INF/struts-html.tld"
prefix="html" %>
<html>
<head>
<title>Wiley Struts Application</title>
</head>
<body>
<table width="500"
border="0" cellspacing="0" cellpadding="0">
<tr>
<td> </td>
</tr>
<tr bgcolor="#36566E">
<td height="68" width="48%">
<div align="left">
<img src="images/hp_logo_wiley.gif"
width="220"
height="74">
</div>
</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
<html:form action="Lookup"
name="lookupForm"
type="wiley.LookupForm" >
<table width="45%" border="0">
<tr>
<td>Symbol:</td>
<td><html:text property="symbol" /></td>
</tr>
<tr>
<td colspan="2" align="center"><html:submit /></td>
</tr>
</table>
</html:form>
</body>
</html>

...全文
339 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
z4b 2004-09-13
  • 打赏
  • 举报
回复
问题转到:

http://community.csdn.net/Expert/topic/3365/3365554.xml?temp=.90263

请老大指教.谢谢。

z4b 2004-09-12
  • 打赏
  • 举报
回复
出现的问题 如下 :

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

java.lang.NullPointerException
wiley.LookupAction.getQuote(LookupAction.java:42)
wiley.LookupAction.execute(LookupAction.java:105)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.


--------------------------------------------------------------------------------

警告: unhandled exception throw: class java.lang.NullpointerException
z4b 2004-09-12
  • 打赏
  • 举报
回复
上面的弄出来了。

现在改成 从 mysql 数据库读取.又出错了。
建一个下面的表

symbol 包含一个表示每只股票(stocks)的唯一键
price 表示一只股票的价格,类型为double(双精度)
Stocks 表

|Symbol| Price
|SUNW |78.00
|YHOO |24.45
|MSFT |3.24

修改上面的 3 文件


3.struts-config.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">


<struts-config>

<data-sources>
<data-source>
<set-property property="autoCommit"
value="false"/>
<set-property property="description"
value="Example Data Source Configuration"/>
<set-property property="driverClass"
value="org.postgresql.Driver"/>
<set-property property="maxCount"
value="4"/>
<set-property property="minCount"
value="2"/>
<set-property property="password"
value="12345"/>
<set-property property="url"
value="jdbc:postgresql://localhost/mydatabase"/>
<set-property property="user"
value="root"/>
</data-source>
</data-sources>

<form-beans>
<form-bean name="lookupForm" type="wiley.LookupForm"/>
</form-beans>


<action-mappings>
<action path="/Lookup"
type="wiley.LookupAction"
name = "lookupForm"
input = "/index.jsp">
<forward name = "success" path= "/quote.jsp"/>
<forward name = "failure" path= "/index.jsp"/>
</action>
</action-mappings>
</struts-config>

5.LookupAction.java
package wiley;

import javax.servlet.ServletContext;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class LookupAction extends Action {
/**
protected Double getQuote(String symbol) {
if ( symbol.equalsIgnoreCase("SUNW") ) {
return new Double(25.00);
}
return null;
}
*/

protected Double getQuote(String symbol) {
Double price = null;
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
ServletContext context = servlet.getServletContext();
DataSource dataSource = (DataSource) context.getAttribute(Action.DATA_SOURCE_KEY);
//Using a DataSource in a Struts Application

try {

if(dataSource==null){
System.out.println("datasource is null");
}
conn = dataSource.getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from stocks where " + "symbol='" + symbol + "'");
if ( rs.next() ) {
double tmp = 0;
tmp = rs.getDouble("price");
price = new Double(tmp);
System.err.println("price : " + price);
}
else {
System.err.println("....>Symbol not found<....");
}
}
catch (SQLException e) {
System.err.println(e.getMessage());
}
finally {
if (rs != null) {
try {
rs.close();
}
catch (SQLException sqle) {
System.err.println(sqle.getMessage());
}
rs = null;
}
if (stmt != null) {
try {
stmt.close();
}
catch (SQLException sqle) {
System.err.println(sqle.getMessage());
}
stmt = null;
}
if (conn != null) {
try {
conn.close();
}
catch (SQLException sqle) {
//Using a DataSource in a Struts Application

System.err.println(sqle.getMessage());
}
conn = null;
}
}
return price;
}

public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
Double price = null;
// Default target to success
String target = new String("success");
if ( form != null ) {
// Use the LookupForm to get the request parameters
LookupForm lookupForm = (LookupForm)form;
String symbol = lookupForm.getSymbol();
price = getQuote(symbol);
}
// Set the target to failure
if ( price == null ) {
target = new String("failure");
}
else {
request.setAttribute("PRICE", price);
}
// Forward to the appropriate View
System.out.println(target);
//this.logDebug(request, hmFinalActualAmount);
return (mapping.findForward(target));
}
}
z4b 2004-09-12
  • 打赏
  • 举报
回复
在那里看驱动是不是 mysql 的? 我是把
jdbc2_0-stdext.jar
jdbc-mysql.jar

发到D:\tomcat\webapps\sb-2\WEB-INF\lib

这个目录下.对么?
z4b 2004-09-12
  • 打赏
  • 举报
回复


问题的状态:

http://www.flyingsoft.com.cn/bbs/topic.jsp?forumID=1&topic=83

或看这里也可以.
gong1 2004-09-12
  • 打赏
  • 举报
回复
没有传给symbol值。
^_^
还有好像你得驱动不是用的mysql得。
^_^
power17 2004-09-12
  • 打赏
  • 举报
回复
实在抱歉,你的太长了。
z4b 2004-09-12
  • 打赏
  • 举报
回复
问题的状态:

http://www.flyingsoft.com.cn/bbs/topic.jsp?forumID=1&topic=46

或看这里也可以.
ybsoft 2004-09-11
  • 打赏
  • 举报
回复
怎么把FORMBEAN的内容共享,可以让其他的ACTION访问
z4b 2004-09-11
  • 打赏
  • 举报
回复
还是原来的样子,我
<html:form action="/Lookup">
</html:form>

这样改了 从起 了 tomcat 还是原来的错误,那个老大能调一下。发给我.谢谢./

z4b@163.com
fantasyCoder 2004-09-11
  • 打赏
  • 举报
回复
<html:form action="/Lookup">
</html:form>
z4b 2004-09-11
  • 打赏
  • 举报
回复
4.LookupForm.java

package wiley;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
public class LookupForm extends ActionForm {
private String symbol = null;
public String getSymbol() {
return (symbol);
}
public void setSymbol(String symbol) {
this.symbol = symbol;
}
public void reset(ActionMapping mapping,
HttpServletRequest request) {
this.symbol = null;
}
}

5.LookupAction.java

package wiley;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class LookupAction extends Action {
protected Double getQuote(String symbol) {
if ( symbol.equalsIgnoreCase("SUNW") ) {
return new Double(25.00);
}
return null;
}
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
Double price = null;
// Default target to success
String target = new String("success");
if ( form != null ) {
// Use the LookupForm to get the request parameters
LookupForm lookupForm = (LookupForm)form;
String symbol = lookupForm.getSymbol();
price = getQuote(symbol);
}
// Set the target to failure
if ( price == null ) {
target = new String("failure");
}
else {
request.setAttribute("PRICE", price);
}
// Forward to the appropriate View
return (mapping.findForward(target));
}
}

z4b 2004-09-11
  • 打赏
  • 举报
回复
2.quote.jsp

<html>
<head>
<title>Wiley Struts Application</title>
</head>
<body>
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td> </td>
</tr>
<tr bgcolor="#36566E">
<td height="68" width="48%">
<div align="left">
<img src="images/hp_logo_wiley.gif"
width="220" height="74">
</div>
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td>
Current Price : <%= request.getAttribute("PRICE") %>
</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</body>
</html>

3. struts-config.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">


<struts-config>
<form-beans>
<form-bean name="lookupForm" type="wiley.LookupForm"/>
</form-beans>


<action-mappings>
<action path="/Lookup"
type="wiley.LookupAction"
name = "lookupForm"
input = "/index.jsp">
<formard name = "success" path= "/quote.jsp"/>
<formard name = "failure" path= "/index.jsp"/>
</action>
</action-mappings>
</struts-config>
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧