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>

...全文
385 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>
内容概要:本文基于Matlab/Simulink平台,对电励磁同步电机在异步牵入、稳态运行及能耗制动三个阶段的全周期动态特性进行建模仿真与系统研究。研究构建了完整的电机数学模型与仿真系统,重点分析了电机从异步启动到同步运行的过渡过程、稳态运行时的电磁与机械性能,以及执行能耗制动时的减速特性与能量耗散机理。通过仿真,揭示了励磁电流、负载转矩与转速在不同工况下的动态响应规律与耦合关系,为电机的控制策略设计与性能优化提供了理论依据和数据支持。; 适合人群:具备电机学、电力电子与电力拖动基础知识的电气工程及相关专业的研究生、科研人员与工程技术人员。; 使用场景及目标:①研究电励磁同步电机的启动特性,解决异步牵入过程不稳定或失败的问题;②分析电机在不同负载下的稳态运行性能,优化运行效率;③设计和验证能耗制动策略,精确控制制动过程的减速时间和能量消耗。; 阅读建议:在学习过程中,应结合电机的基本原理,深入理解仿真模型中各模块(如电机本体、励磁控制、负载模型)的搭建逻辑,并通过调整仿真参数(如励磁电压、负载大小)来观察和分析系统动态响应,以加深对电机全周期运行特性的理解。
内容概要:通过介绍短时倒谱(Cepstrogram)计算方法,开展时-倒频分析研究,深入探讨倒谱分析机理、短时倒谱构建逻辑及时-倒频分析的内涵。文中系统对比了时-倒频分析与全局倒谱、传统时频分析方法的差异,阐明其在卷积特征解耦、非平稳信号跟踪、微弱周期特征增强及多维特征融合方面的技术优势,并分析其在语音识别、机械故障诊断、音频处理和非平稳时序信号分析中的典型应用,同时指出其在分辨率、计算复杂度等方面的局限性并提出优化方向。; 适合人群:具备一定信号处理或数据分析基础,从事机械、通信、声学或自动化等领域研究的研发人员及研究生。; 使用场景及目标:① 掌握短时倒谱与时-倒频分析的理论基础与实现方法;② 应用于语音信号处理、机械设备故障诊断、音频相似性检测等工程实践;③ 对比传统方法,提升对复杂非平稳信号中隐含周期特征的识别能力; 阅读建议:此资源以Matlab代码实现为核心,强调理论与实践结合,建议读者在理解核心算法原理的基础上,动手运行代码并调试参数,结合具体应用场景深化对方法适用性与局限性的认识。
摘 要 在数字经济与保险行业深度融合的背景下,传统保险服务普遍存在流程繁琐、信息不对称、线下办理效率低、管理成本高、理赔不透明等问题,已难以适应用户便捷化服务需求与行业数字化发展趋势。推动保险业务线上化、服务智能化、管理平台化,成为提升保险服务质量与运营效率的关键路径。 本文以在线保险服务与管理平台为研究对象,依据软件工程规范,采用 Spring Boot + Vue.js 前后端分离架构,结合 MySQL 数据库完成系统设计与实现。平台面向普通用户与管理员两类角色,涵盖注册登录、保险产品展示、在线投保、智能核保、保单管理、理赔申请、消息通知、保险知识科普、后台管理及数据统计等核心功能,实现保险服务全流程线上化、投保便捷化、保单管理智能化、理赔过程透明化、后台运营高效化。 系统依次完成需求分析、总体设计、详细设计、功能实现与全面测试。测试结果表明,平台在功能完整性、接口响应性能、数据安全防护及多浏览器兼容性方面均达到设计目标,运行稳定可靠。该平台可有效改善传统保险服务痛点,提升用户体验与管理效率,可为保险行业数字化转型提供实用的工程实践参考。 关键词:在线保险;服务平台;Spring Boot;Vue.js;前后端分离;保险数字化

67,535

社区成员

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

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