マンガでよめる痔のこと・薬のこと

技術サイトを見ながらJSPを勉強しているのですが、
自作のクラスがimportエラーとなる為、コンパイルできない状態です。
色々サイトを検索して調べてみましたが、原因が分からず悩んでいます。
ご教示を宜しくお願いします。

※下記、[参考資料]ページを見ながら勉強していますが、
原因を調べる為にimportだけの簡単のjsp(test.jsp)を
作成してデバッグ中です。

Windows2000
Apache 2.0.63
Tomcat 6.0.16
JK2 2.0.4
参考資料:http://www.atmarkit.co.jp/fjava/rensai/jsp06/jsp …

-----------------------------------------------------------------------------
■エラー内容(ブラウザの表示結果)
org.apache.jasper.JasperException: JSPのクラスをコンパイルできません:

An error occurred at line: 6 in the generated java file
Only a type can be imported. atmarkit.CopyrightHTML resolves to a package

■ファイルの配置
$docbase →test.jspを配置
$docbase\WEB-INF\classes\atmarkit →CopyrightHTML.classを配置
$docbase\WEB-INF\lib

■test.jsp
<%@ page contentType="text/html; charset=SHIFT_JIS" %>
<%@ page import="atmarkit.CopyrightHTML" %>

<html>
<body>
<p>-- テスト --</p>
</body>
</html>

■CopyrightHTML.java
package atmarkit;

/**
* 著作権表示用のHTMLを生成するクラス
*/
public class CopyrightHTML {
public String year = "";
public String name = "";
public String mail = "";

// 標準的な著作権表示HTML文を取得する
public String getNormalHTML() {
if(!mail.equals("")) {
name = " <a href=\"mailto:" + mail + "\">" + name + "</a>";
}
return "Copyright " + year + " " + name + ". All rights reserved.";
}

// 短い著作権表示HTML文を取得する
public String getShortHTML() {
if(!mail.equals("")) {
name = " <a href=\"mailto:" + mail + "\">" + name + "</a>";
}
return "(C) " + year + " " + name + ".";
}
}

このQ&Aに関連する最新のQ&A

A 回答 (1件)

おそらく、おたくの環境ではatmarkitというパッケージを作っていないでしょうから、


<%@ page import="atmarkit.CopyrightHTML" %>
や、
package atmarkit;
の行を消してください。

この回答への補足

nao123naoです。
自己解決しました。
JVMのバージョンの問題でした。

「j2sdkの1.4.2」で動作させていたのが問題だったようです。
もともと端末にインストールされていたので、そのまま
使用していたのですが、新たに「JDK6(1.6)」をインストールし、
tomcatのjre設定を変更し、ソースをリコンパイルしたところ
問題無く動作しました。
パッケージなどの構成は、初期のままです。

ありがとうございました。

補足日時:2008/06/26 09:40
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
以前、その方法で確認したのですが
やはりエラーになりました。
もう少し調べてみます。

お礼日時:2008/06/25 11:38

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QJSPのクラスをコンパイルできない問題

こんにちは。

JSPの「org.apache.jasper.JasperException: JSPのクラスをコンパイルできません」
のエラーメッセージに悩まされております。
掲示板をみたところ、たぶんパスの設定ではないかと検討をつけてはいるのですが解決できずの状態です。

■環境
OS:WinVistaBusiness SP2
TOMCAT:apache-tomcat-6.0.32
:C:\Program Files\Apache Software Foundation\Tomcat 6.0
JDK:jdk1.6.0_24
:D:\Program Files\Java\jdk1.6.0_24
JRE1:jre1.6.0_06
 :C:\Program Files\jre1.6.0_06
2:jre6
 :C:\Program Files\jre6
ECLIPSE:Eclipse IDE for Java Developers / Helios Service Release 2
:D:\eclipse
:ワークスペース:D:\Users\ueda\workspace\myapp\WEB-INF\src\web.xml

■ウィンドウズ環境変数
◎JAVA_HOME
D:\Program Files\Java\jdk1.6.0_24

◎CATALINA_HOME
C:\Program Files\Apache Software Foundation\Tomcat 6.0

◎CLASSPATH
.;$JAVA_HOME/lib
;$JAVA_HOME/lib/tools.jar
;C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib
;C:\Program Files\Java\jre1.6.0_06\bin

◎PATH
C:\Program Files\Common Files\Microsoft Shared\Windows Live
;%SystemRoot%\system32
;%SystemRoot%
;%SystemRoot%\System32\Wbem
;C:\Program Files\Softex\OmniPass
;C:\Program Files\pcdNavi\bin
;C:\Program Files\Common Files\Roxio Shared\10.0\DLLShared\
;C:\Program Files\Common Files\Roxio Shared\DLLShared\
;C:\Program Files\Common Files\Roxio Shared\DLLShared\
;C:\Program Files\Common Files\Roxio Shared\10.0\DLLShared\
;C:\Program Files\Common Files\Ulead Systems\MPEG
;C:\Program Files\Microsoft SQL Server\90\Tools\binn\
;C:\Program Files\Common Files\HP\Digital Imaging\bin
;C:\Program Files\HP\Digital Imaging\bin\
;C:\Program Files\HP\Digital Imaging\bin\Qt\Qt 4.3.3
;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\
;C:\Program Files\Fujitsu\sadata
;C:\Program Files\Windows Live\Shared
;D:\Program Files\Java\jdk1.6.0_24\bin
;C:\Program Files\QuickTime\QTSystem\
;D:\Program Files\Java\android-sdk-windows\tools
;D:\Program Files\Java\android-sdk-windows\platform-tools
;C:\Apache Software Foundation\Apache2.2\bin
;C:\php

■エラーメッセージ
org.apache.jasper.JasperException: JSPのクラスをコンパイルできません:

JSPファイル: /Sample015.jsp の中の5行目でエラーが発生しました
Invalid character constant
2: <html>
3: <head><title>Sample015</title></head>
4: <body>
5: <% out.println('Hello!'); %>
6: </body>
7: </html>


Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:326)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


アドバイス頂けると有り難いです。
宜しくお願い致します。

こんにちは。

JSPの「org.apache.jasper.JasperException: JSPのクラスをコンパイルできません」
のエラーメッセージに悩まされております。
掲示板をみたところ、たぶんパスの設定ではないかと検討をつけてはいるのですが解決できずの状態です。

■環境
OS:WinVistaBusiness SP2
TOMCAT:apache-tomcat-6.0.32
:C:\Program Files\Apache Software Foundation\Tomcat 6.0
JDK:jdk1.6.0_24
:D:\Program Files\Java\jdk1.6.0_24
JRE1:jre1.6.0_06
 :C:\Program Files\jre1.6.0_06
2:jre6
 :C:\Program...続きを読む

Aベストアンサー

<% out.println('Hello!'); %>

<% out.println("Hello!"); %>
では?

ダブルクオーテーションになってないからかな?

Qjspでbeanを使いたいのですが...

お世話になります。
JSPコード内のjavaプログラムをBeanとして読み込むようにし、インスタンスを作ってエラーにならないか試したところ、クラスが認識されないエラーが起きてしまいました。
他の記述やテキスト、サイト様を参考に手直しをしてみたもののうまく行かず、何だかわからなくなってしまいました...

ご教授お願いいたします。

OS:WindowsVista
サーブレット:Tomcat
参考テキスト:java+MySQL+Tomcatで始めるWebアプリケーション

ファイルの階層
Desktop─test─jamyto┬aura─aurabottle.jsp
           └WEB-INF─classes─auras┬IdMake.java
                        └IdMake.class

aurabottle.jsp側
<%@ page contentType="text/html; charset=Windows-31J"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*"%>
<%@ page import="auras.IdMake"%>
<%auras.IdMake idmake = new auras.IdMake();%>
   以下JSPコード


IdMake.java側
package auras;
import java.sql.*;

public class IdMake {
StringBuffer sb = new StringBuffer();
public int barthDay (String strYear, String strMonth, String strDay){
以下Javaコード

エラー文面
org.apache.jasper.JasperException: JSPのクラスをコンパイルできません:
JSP FileName:null
Java FileName:/C:/Program Files/Apache Software Foundation/Tomcat 5.5/work/Catalina/localhost/aura//org/apache/jsp\aurabottle_jsp.java

An error occurred at line: 6 in the generated java file
Only a type can be imported. auras.IdMake resolves to a package
JSP FileName:/aurabottle.jsp
Java FileName:/C:/Program Files/Apache Software Foundation/Tomcat 5.5/work/Catalina/localhost/aura//org/apache/jsp\aurabottle_jsp.java

JSPファイル: /aurabottle.jsp の中の7行目でエラーが発生しました
auras.IdMake cannot be resolved to a type

お世話になります。
JSPコード内のjavaプログラムをBeanとして読み込むようにし、インスタンスを作ってエラーにならないか試したところ、クラスが認識されないエラーが起きてしまいました。
他の記述やテキスト、サイト様を参考に手直しをしてみたもののうまく行かず、何だかわからなくなってしまいました...

ご教授お願いいたします。

OS:WindowsVista
サーブレット:Tomcat
参考テキスト:java+MySQL+Tomcatで始めるWebアプリケーション

ファイルの階層
Desktop─test─jamyto┬aura─aurabottle.jsp
...続きを読む

Aベストアンサー

関係ないかもしれませんが、幾つか疑問点をあけて見ます。

>>> Tomcat 5.5/work/Catalina/localhost/aura//org/apache/jsp\aurabottle_jsp.java
   最後だけ、\が使われて表示されていますが、こういう物でしたかね。


>>> An error occurred at line: 6 in the generated java file

   エラーは、aurabottle_jsp.javaのimport文でしょうか。そのソースコードは?
   jspファイルをみるとパッケージを指定しているので、このimport用ののpageディレクティブををはずしてみてはどうでしょうか。



なお、先ほどは、見にくかったかも知れませんが

>>> 実際にはclasses直下のauras内にIdMake.java、IdMake.classがある状態です。

のつもりでした。(ずれていたんですね)

Q「httpステータス404」というエラーが出ます。

「httpステータス404」というエラーが出ます。

java初心者です、宜しくお願い致します。
EclipseでServletを書いてやりましたが、以下のようなエラーが出ます、
原因はなんでしょうか、宜しくお願い致します。
「httpステータス404-/Servlet%E7%B7%B4%E7%BF%92/ ServOutput」

Aベストアンサー

Not Found
という意味です。
そのファイルが無い。あるいはリンクが間違っています。
詳しくは参考URLをみてください。

参考URL:http://ja.wikipedia.org/wiki/HTTP_404

QEclipseでのJDBCドライバについて

Eclipse3.1でデータベース(mysql)にアクセスするプログラムを作ったのですが下記のエラーが出ます。

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

これはJDBCドライバのセットアップがうまく出来ていないからなのでしょうか?
またEclipseでは、~.jarというファイルをプロジェクトのWEB-INFのlibフォルダに入れれば使える印象があるのですが、参考書(EclipseのではなくJAVAなどの)などにあるようにTomcatのインストールフォルダ以下common/libに入れて環境変数を変更しないといけないのでしょうか?

ご存知の方教えてください、よろしくお願いします。

Aベストアンサー

WEB-INF以下に入れると実行はできるのですが、エクリプスが.javaファイルをコンパイルすることができません。projectの一覧を右クリックしてpropertyを選択し、ダイアログ右側からJava Build Pathを選択し、タグからLibrariesを選び、Add JARsボタンをおして.jarファイルを登録して下さい。
たぶんこれでコンパイルできるはずです。

Qシンボルが見つかりませんというエラーが理解できません。

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Image[3];
Thread t;
int index1 = 0;
int index2 = 0;
String msg = "";
String msg1 = "";

boolean state = false;
Button b1 = new Button("ぐー");
Button b2 = new Button("ちょき");
Button b3 = new Button("ぱー");

public void init(){
for(int i = 0; i<=2; i++){
img[i] = getImage(getDocumentBase(),"hanabi" + (i+1) + ".JPG");
}
add(b1);
add(b2);
add(b3);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
msg1 = "結果は・・";

}

public void paint(Graphics g){
g.drawImage(img[index1],350,30,this);
g.drawImage(img[index2],695,30,this);
g.drawString("コンピューター",420,300);
g.drawString("あなた",800,300);
g.drawString(msg,630,320);
g.drawString(msg1,550,320);
}

public void start(){
state = true;
t = new Thread(this);
t.start();

}

public void run(){
while(state){
index1++;
if(index1 == 3){
index1 = 0;
}
index2++;
if(index2 == 3){
index2 = 0;
}
repaint();
try {
Thread.sleep(60);
}catch(InterruptedException e) { }
}
}

public void actionPerformed(ActionEvent e){
if(state == false) {
start();
return;

}
state = false;
if(e.getSource() == b1) {
msg = "ぐー";
index2 = 0;
}

else if(e.getSource() == b2){
msg = "ちょき";
index2 = 1;
}

else if(e.getSource() == b3){
msg = "ぱー";
index2 = 2;
}
check();
repaint();
}

public void check() {
if(index1 == index2) msg ="あいこ";


else if (index1 == 0) {
if(index2 == 2) msg="あなたの勝ち";
else msg ="あなたの負け";
}

else if(index1 == 1) {
if(index2 == 0) msg="あなたの勝ち";
else msg="あなたの負け";
}

else if(index1 == 2) {
if(index2 == 1) msg="あなたの勝ち";
else msg="あなたの負け";
}

}
}

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Imag...続きを読む

Aベストアンサー

「シンボルを見つけられません。」というエラーの下に何か表示がありませんでしたか?そこにヒントがあると考えられます。
シンボルを見つけられませんといエラーが表示される主な理由は4つあります。
(1)クラス、メソッド、変数などの綴りミスや定義していない変数を使用している可能性がある。
(2)コンストラクタを呼び出すときに、newを忘れている可能性がある。(3)公開されていないメンバーを呼び出している可能性がある。
(4)必要なimport文を記述し忘れている可能性がある。
ここでのあなたのエラーは(1)番ではないでしょうか?上記ではimageとなっている変数がimgになっていますね。
これはエラー表示をよく見ることで意外と簡単に解決できるのです。
ゆっくり丁寧にエラー表示を見るように心がけることが大事ですよ。

QJSPの処理の途中で、JavaScriptの処理をしたい

プログラムをJSPで記述している(<% %>タグ)のですが、
JavaScriptのalertやconfirmなどのポップアップするダイアログを
表示したいのです。それは可能なのでしょうか?

Aベストアンサー

No.2の回答に対する回答(変な日本語ですが)です。

JSPとJavaScriptの処理の行われる順番について考えていないと
エラーになることがありますよ。
大まかな流れは、
 JSPのソースをサーバ側で解釈、実行する(HTMLのソースを吐き出す)
  ↓
 クライアントに生成したソースを送信する
  ↓
 クライアント側のブラウザがソースを解釈する
  ↓
 ソースの中のJavaScriptを、ソースの上のほうから順次実行する
  ↓
 同時に、通常の表示(HTMLの解釈)も実行される

 と、こういう流れですので、例えば、JavaScriptで値を入力し、
JSPでその値を使おうとすると、エラーとなります。

 具体的にやりたいこと(やろうとしていること)を書いていただいたほうが
適切に回答できますが、上記が今考えられるエラーの原因です。

Qeclipse servlet 404対処方法

初めて質問させて頂く者です。宜しくお願いします。Java初心者です。
eclipse4.3のtomcatプロジェクトを使い、以下のServletコードを作成しました。
ブラウザアドレスバーに以下アドレスを入れて実行しましたが、HTTPステータス404が表示されます。
どのように改善したら良いかアドバイスをお願い致します。長文申し訳ございません。本当に困っています。

環境:windows8.1 eclipse4.3
ディレクトリ:jwapp(プロジェクト名)
-test(パッケージ名)
-First(ファイル名)
指定アドレス:localhost:8080/jwapp/servlet/test.First

web.xmlファイルはWEB-INFの中に置いています。
記述は以下のとおりです。↓

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app
version="2.5"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd">
<servlet>
<servlet-name>first</servlet-name>
<servlet-class>test.First</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>first</servlet-name>
<url-pattern>/first</url-pattern>
</servlet-mapping>
</web-app>

Servletのコードは以下のとおりです。↓

package test;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class First01 extends HttpServlet {
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws IOException,ServletException{
res.setContentType("text/html;charset=Shift_JIS");
PrintWriter out=res.getWriter();
out.println("<html)");
out.println("<head>");
out.println("<title>テスト</title>");
out.println("<h1>テスト</h1>");
out.println("</body>");
out.println("</heml>");
}
}

初めて質問させて頂く者です。宜しくお願いします。Java初心者です。
eclipse4.3のtomcatプロジェクトを使い、以下のServletコードを作成しました。
ブラウザアドレスバーに以下アドレスを入れて実行しましたが、HTTPステータス404が表示されます。
どのように改善したら良いかアドバイスをお願い致します。長文申し訳ございません。本当に困っています。

環境:windows8.1 eclipse4.3
ディレクトリ:jwapp(プロジェクト名)
-test(パッケージ名)
-First(ファイル名...続きを読む

Aベストアンサー

publicクラス名は、ファイル名と同じにします。
web.xmlのur-pattern要素が/firstならば、urlは下記になります。

http://localhost:8080/jwapp/first

QJSPからクラス(サーブレット)を呼び出す方法

JSPからクラス(サーブレット)を呼び出そうとしてるんですが
以下のエラーになってしまいます。
The requested resource (/Hello) is not available.

ネットで調べてみたら、パスの指定の仕方が悪いんじゃないかって感じがするので
色々パスを弄ってみましたが、ずっとavailableになります。
わかる方いらっしゃったらアドバイスよろしくお願いします。

※usebeanはこのエラーの前の段階で、getとset両方動くのを確認しています。
※「http://localhost:8080/javaroad/Hello」を直接WEBブラウザのURLに入れたら動きました。

【フォルダ構成 (Tomcat 6.0\webappsの直下) 】

javaroad
---------- index.jsp
---------- WEB-INF
-------------------- web.xml
-------------------- classes
---------------------------- HelloServlet.class

【index.jsp】
<%@ page contentType="text/html;charset=Shift_JIS" %>
<jsp:useBean id="GSBean" class="Testaaa.GetSetBean" />
<html>
<head>
<title>Hello World!</title>
</head>
<body>
<form method="post" action="/Hello">
<input type="text" name="name1" maxlength="10" style="ime-mode: disabled">
<jsp:setProperty name="GSBean" property="userID" param="name1" />
<br><br>
<input type="submit" value="submit">
</form>
</body>
</html>

【web.xml】
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">

<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/Hello</url-pattern>
</servlet-mapping>

</web-app>

【HelloServlet.class】
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println("<BODY>");
out.println(new java.util.Date());
out.println("</BODY>");
out.println("</HTML>");
}

以下試して駄目だったパスの一覧です。
<form method="post" action="Hello">
<form method="post" action="/Hello">
<form method="post" action="../servlet/Hello">
<form method="post" action="HelloServlet">
<form method="post" action="/HelloServlet">
<form method="post" action="../servlet/HelloServlet">
<form method="post" action="WEB-INF\classes/HelloServlet">
<form method="post" action="http://localhost:8080/javaroad/Hello">

JSPからクラス(サーブレット)を呼び出そうとしてるんですが
以下のエラーになってしまいます。
The requested resource (/Hello) is not available.

ネットで調べてみたら、パスの指定の仕方が悪いんじゃないかって感じがするので
色々パスを弄ってみましたが、ずっとavailableになります。
わかる方いらっしゃったらアドバイスよろしくお願いします。

※usebeanはこのエラーの前の段階で、getとset両方動くのを確認しています。
※「http://localhost:8080/javaroad/Hello」を直接WEBブラウザのURLに入れたら動...続きを読む

Aベストアンサー

<form method="get" action="Hello">

ではないでしょうか。

Qフォーム上で押されたボタンによってサーブレットの処理を変えたい

Urizakaです。
さて、さっそく質問です。
JSPの同一フォーム上に「登録」「修正」「削除」のボタンを置き、その押された
ボタンによってサーブレット内での処理が切り替わる(具体的には、違う
SQL文を実行し、違うJSPページをgetRequestDispatcherメソッドで生成
する)ようにしたいのですが、どのようにすればよいのでしょうか?
もちろんそれぞれの処理に対して別々のサーブレットを作り、javaScript
でそれぞれのサーブレットへ飛ぶように制御するという処理も考えたことは
考えたのですが、できれば一つのサーブレットで済ませたいと考えたもので
…宜しくお願いします。

Aベストアンサー

お恥ずかしい限りです。
前述の例、動くわけがありませんね(汗)

2つめの例、書きなおします。

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

■JSPのフォーム

<form name=MyForm action="<<サーブレットのURL>>" method=post>
<input type=button name=MyClick value=登録 onClick="func('Toroku');">
<input type=button name=MyClick value=修正 onClick="func('Shusei');">
<input type=button name=MyClick value=削除 onClick="func('Sakujo');">
<input type=hidden name=MySubmit>
</form>

<script language="JavaScript">
function func(MyCommand){
document.MyForm.MySubmit.value=MyCommand;
document.MyForm.submit();
}
</script>

■Servletでの処理
// リクエストの取得
String MyAction = req.getParameter("MySubmit");

// 処理の実行
if (MyAction.equals("Toroku")){...}
if (MyAction.equals("Shusei")){...}
if (MyAction.equals("Sakujo")){...}



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

こんな感じでどうでしょうか。
ちなみにこうやって書いておくと、フォームのボタンからじゃなくても
アンカーをクリックすることで同じ効果が出せそうな……

<a href="JavaScript:func('Toroku')">登録</a>

あ、でもまたボロが出そうなのでこの辺で(^_^;)

お恥ずかしい限りです。
前述の例、動くわけがありませんね(汗)

2つめの例、書きなおします。

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

■JSPのフォーム

<form name=MyForm action="<<サーブレットのURL>>" method=post>
<input type=button name=MyClick value=登録 onClick="func('Toroku');">
<input type=button name=MyClick value=修正 onClick="func('Shusei');">
<input type=button name=MyClick value=削除 onClick="func('Sakujo');">
<input type=hidden name=M...続きを読む

QJSPでリンクを利用してパラメータを次画面に渡す方法について。

一覧表示されているデータのNOをクリックすると、二つのパラメータでデータベースへアクセスし、該当データの詳細画面に遷移する、というプログラムを作っています。

データベースへアクセスする際に必要なIDは2つで、仮にID_A、ID_Bとします。
リンク部分のソースは

---------------------------------------------------------------------
<a href = "update_form.jsp?ID_A=<%= rs.getString("ID_A") %>">番号</a>
<input type="hidden" name="ID_B" value="<%= rs.getString("ID_Bcat_id") %>">
---------------------------------------------------------------------

としておりますが、次画面へ遷移すると、ID_Bの値はnullとなってしまうために、正常にデータの取得ができません。

二つのパラメータを使用する場合のパラメータを渡す方法を教えて頂きたいと思います。よろしくお願いします。

一覧表示されているデータのNOをクリックすると、二つのパラメータでデータベースへアクセスし、該当データの詳細画面に遷移する、というプログラムを作っています。

データベースへアクセスする際に必要なIDは2つで、仮にID_A、ID_Bとします。
リンク部分のソースは

---------------------------------------------------------------------
<a href = "update_form.jsp?ID_A=<%= rs.getString("ID_A") %>">番号</a>
<input type="hidden" name="ID_B" value="<%= rs.getString("ID_Bcat_id") %>">...続きを読む

Aベストアンサー

<a href = "update_form.jsp?ID_A=<%= rs.getString("ID_A") %>&ID_B=<%= rs.getString("ID_Bcat_id") %>">番号</a>

としてID_Bを&で繋げればMethod="get"で送れますね。
inputタグで送る場合はformタグでactionアトリビュートに飛ぶjspを指定してsubmitボタンかJavaScriptでsubmitさせなければならないと思います。


人気Q&Aランキング