すみませんがどなたか助けてください!
strutsでの開発をすることとなり、現在勉強中なのですが最初のjspにて
parsingエラーとなりつまづいております。。
【現在の環境】
eclipse3.0.1
Tomcat 5.0.28
j2sdk1.4.2_08
struts1.1
主なプラグイン:
lomboz.301
(EMF 2.0.2)
tomcatplug-in V3
Hibernate synchoronizer 3.0.1
 以上のような環境でeclipseから新規プロジェクトを
Tomcatプロジェクトにて作成し、struts-blank.warを解凍したものをworkspaceにコピーしております。
 struts関連の参考サイトをみながら学習しておりましたが、
まず最初の"http://localhost:8080/プロジェクト名/index.jsp"にアクセスしてもエラーとなります。
エラーログ:
javax.servlet.ServletException: Missing message for key "welcome.title"~以下略

また、eclipseのindex.jspファイル上でもエラーが表示されておりまして、
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>のところで
「JSP Parsing Error:"/tags/struts-logic"がみつかりません。」と表示されます。
環境設定に問題があるのでは・・と調べてはいるのですが2日悩んでおりますが未だ解決に至っておりません。
 http://localhost:8080/struts-blank/にアクセスするこは確認できております。
 とりわけ自信がないのはeclipseでのTomcatの設定なのですが、色々調べてみたつもりですが、
上手くいきません。
クラスパス:C:j2sdk1.4.2_08\tools.jar
ブートクラスパス:C:j2sdk1.4.2_08\rt.jar
         C:j2sdk1.4.2_08\charset.jar
以上の設定をしています。
eclipseでは不要とのことですが、
JAVA_HOMEやTOMCAT_HOMEなどは環境変数で
設定してみました。
 やれることはやったつもりなのですが..
もう私レベルでは手詰まりとなってしまいました。
どなたかお助けください。。。

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

A 回答 (2件)

Missing message for key


ということですから、リソースファイルから指定されたキー(おそらくwelcome.title)が見つからないということだろうと思います。原因はいろいろ考えられますが、

・リソースファイルがstruts-config.xmlに登録されていない。
・<message-resouces>のリソースファイル名などが間違っている。
・指定のキーが記述されていない。あるいはキー名を間違えている。
・そもそもリソースファイルがない。あるいはリソースファイルの保管場所を間違えている。

といったところだろうと思います。そのあたりのリソースファイル関連を一通りチェックしてみてはいかがですか。

また、ご質問からすると、EclipseでTomcat-pluginやLombozを使った機能が完全に動作することを確認されていないように思えるのですが。まず、

・Eclipseが問題なく動く。
・Tomcatサーバが問題なく動く。
・インストールしたプラグインが問題なく動く。
・Eclipseからサーバの起動などが問題なく動く。
・もっともシンプルなJSP/サーブレットを使ったWebアプリケーションを問題なくデプロイできる。

以上のことをきちんと確認された上で、それからStrutsに挑戦されるのが良いと思います。でないと、果たしてStrutsの問題なのか、それ以前のEclipseやサーバの基本的な設定ミスなどの問題なのか、問題の切り分けがしにくくなりますから。
(既にそのあたりは完璧だ!というのであればご容赦ください)
    • good
    • 0
この回答へのお礼

お礼が遅くなりまして申し訳ありません!
eclipseでJAVAのビルドパスの「ソースおよび出力フォルダー」をプロジェクトになっていたのをフォルダに変更したら解決しました。
本当にありがとうございました。

お礼日時:2005/04/25 08:58

struts-logic.tldが見つからないのだと思います。


まずstruts-logic.tldファイルの有無と配置場所を確認して、
それにパスを通す設定をweb.xmlかJSPファイルに行ってください。
一般的にはtldファイルは/WEB-INF/tld/にあります。
もしtldファイルがあるようであれば、web.xmlに

<taglib>
<taglib-uri>struts-logic</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location>
</taglib>

のような記述を追加し、JSPの記述を

<%@ taglib uri="struts-logic" prefix="logic" %>

のように変更するか、
struts-logic.tldファイル自体を"/tags/struts-logic" の記述の設定に合わせて配置する必要があります。

メッセージのパスが通っていないようですし、
全般的にコンテンツは以下の構成が全然設定されていないようですが、
一度、ちゃんとコンテンツの構成と設定ファイルの内容を見比べてみてはいかがでしょうか?
    • good
    • 0
この回答へのお礼

お礼が遅くなりまして申し訳ありません!
eclipseでJAVAのビルドパスの「ソースおよび出力フォルダー」をプロジェクトになっていたのをフォルダに変更したら解決しました。
本当にありがとうございました。

お礼日時:2005/04/25 08:57

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

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

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

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

QGoogle maps api v3

https://developers.google.com/maps/articles/phpsqlajax_v3?hl=ja
を参考にコーディングし、いろいろなサイトも調べてながら(手探り)ですが、どうしてもうまく表示されません。

【maps.php】にてxmlデータを生成しました。それを使ってサイトに表示させるというものです。
うまく表示されないというか、画面が真っ白になってしまいます。
アドバイス等ご教示頂ければ幸甚です。

【index.html】

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Maps</title>
<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/jacascript">
//<![CDATA[
function load() {
var map = new google.maps.Map(document.getElementById("map"), {
center: new google.maps.LatLng(35.66, 139.69),
zoom: 13,
mapTypeId: 'roadmap'
});
var infoWindow = new google.maps.InfoWindow;

// Change this depending on the name of your PHP file
downloadUrl("maps.php", function(data) {
var xml = parseXml(data);
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var name = markers[[]i].getAttribute("name");
var address = markers[[]i].getAttribute("address");
var tel = markers[[]i].getAttribute("tel");
var email = markers[[]i].getAttribute("email");
var message = markers[[]i].getAttribute("message");
var point = new google.maps.LatLng(
parseFloat(markers[[]i].getAttribute("lat")),
parseFloat(markers[[]i].getAttribute("lng")));
var html = "" + name + " " + address;
var icon = customIcons[[]type] || {};
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon.icon,
shadow: icon.shadow
});
bindInfoWindow(marker, map, infoWindow, html);
}
});
}


function bindInfoWindow(marker, map, infoWindow, html) {
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(html);
infoWindow.open(map, marker);
});
}

function downloadUrl(url, callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;

request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request.responseText, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}

function parseXml(str) {
if (window.ActiveXObject) {
var doc = new ActiveXObject('Microsoft.XMLDOM');
doc.loadXML(str);
return doc;
} else if (window.DOMParser) {
return (new DOMParser).parseFromString(str, 'text/xml');
}
}

function doNothing() {}

//]]>
</script>

</head>
<body onload="load()">
<div id="map" style="width: 500px; height: 300px"></div>
</body>
</html>

https://developers.google.com/maps/articles/phpsqlajax_v3?hl=ja
を参考にコーディングし、いろいろなサイトも調べてながら(手探り)ですが、どうしてもうまく表示されません。

【maps.php】にてxmlデータを生成しました。それを使ってサイトに表示させるというものです。
うまく表示されないというか、画面が真っ白になってしまいます。
アドバイス等ご教示頂ければ幸甚です。

【index.html】

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Maps</title>
<script src="http://m...続きを読む

Aベストアンサー

まず、<script type="text/jacascript">ではなくて<script type="text/javascript">です。

JavaScriptに markers[[]i] という書式はないです。
正しくは、markers[i]. です。

あと、間違いではないですが、mapTypeId: 'roadmap' の部分は、
mapTypeId : google.maps.MapTypeId.ROADMAP のが望ましいです。


少しコードを変えましたが、ほぼそのままのコードで動くように調整しました。
IE9(windows7), chrome で確認済みです。
http://googlemaps.googlermania.com/tmp/okwave_qa7606484/xml_sample.html


Google Maps APIに関する質問でしたら、こちらもどうぞ。
https://groups.google.com/group/google-maps-api-japan1

QStruts・Tomcat・JSPの初心者練習環境

お世話になります。

Strutsを勉強しようと思い、PCサイト「@IT」で「@IT:連載 Strutsを使うWebアプリケーション構築術(2)」(http://www.atmarkit.co.jp/fjava/rensai3/struts02/struts02_1.html)を見つけました。

しかしながらこの執筆が2004年のため、最新に近いStruts・Tomcat・JSPでは記述通りに設定さえできません。例として「Tomcatのアプリケーションフォルダ「%CATALINA_HOME%\webapps」配下にコピーします」とありますが、最新Struts2.2.3.1には、そのフォルダは存在しません。

そこで、Struts・Tomcat・JSPそれぞれどのバージョンを組み合わせたら、初心者学習ができるか、教えてください。
それが書かれているURLを教えていただいても結構です。

どうぞよろしくお願いいたします。

Aベストアンサー

ソフトウェアが新しくなると、「前とはこう違う」という解説が多くなっていくので、結局は古いバージョンの知識が基礎として必要、みたいなことが多々あります。

質問の内容だと「Tomcat のアプリケーションフォルダ」の話で、「最新の Struts にはない」とかかれていて、TOMCAT / Struts の関係自体の理解は大丈夫かな??とちょっと気になりました。入門も大事ですが、環境構築やシステムの動作原理を先に簡単にでも調べてみたほうがいいと思いますよ。

Struts でいうなら、1.X 系と 2.X 系に大きく分けられるので、2.X 系を使うのであれば 2.X 系の解説サイトを見つけるといいと思います。google で「Struts 入門」で検索すると、同じ @IT の中の

http://www.atmarkit.co.jp/fjava/special/struts2/struts2_1.html

も結構上位にヒットしてますよ。他にも上位に有用そうなサイトはいっぱい見て取れます。

サイトの解説を見て学習する場合、バージョンが同じ方がもちろんいいですが、メジャーバージョンが同じなら大抵大丈夫だと思います。動かない場合はその原因を調べていけば、大変ですが何が違うかも知ることができますよ。

ソフトウェアが新しくなると、「前とはこう違う」という解説が多くなっていくので、結局は古いバージョンの知識が基礎として必要、みたいなことが多々あります。

質問の内容だと「Tomcat のアプリケーションフォルダ」の話で、「最新の Struts にはない」とかかれていて、TOMCAT / Struts の関係自体の理解は大丈夫かな??とちょっと気になりました。入門も大事ですが、環境構築やシステムの動作原理を先に簡単にでも調べてみたほうがいいと思いますよ。

Struts でいうなら、1.X 系と 2.X 系に大きく分けられる...続きを読む

QGoogle Maps V3のズームの規制

現在htmlにはhead内に
<script type="text/javascript"src="http://maps.googleapis.com/maps/api/js?key=123456&sensor=false"></script>
<script language="JavaScript" type="text/javascript" src="v3.js"></script>

v3スクリプト内に

//functionコード
function mapload() {
var latlng = new google.maps.LatLng(123,456);
var opts = {
zoom: 16,
center: latlng,

//マップタイプHYBRID(航空写真+地図)ROADMAP(地図)SATELLITE(航空写真)TERRAIN(地形)
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControlOptions: {
mapTypeId: [
google.maps.MapTypeId.ROADMAP,
google.maps.MapTypeId.TERRAIN
]
}
};
//IDコード
var map = new google.maps.Map
(document.getElementById("map"),opts);
//Marker
var LatLng = new google.maps.LatLng(123,456);
var contentString = 'ここです!€';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var image = new google.maps.MarkerImage
('アイコンURL',
new google.maps.Size(30, 30),
new google.maps.Point(0,0),
new google.maps.Point(15, 20));
var shadow = new google.maps.MarkerImage
('アイコン影画像URL',
new google.maps.Size(30, 30),
new google.maps.Point(0,0),
new google.maps.Point(15, 20));

var marker = new google.maps.Marker({
position: LatLng,
map: map,
title: "ここです!",icon: image,shadow: shadow
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map, marker);
});
}

と記載し、html内のスクリプトのとこに表示しています。
表示される地図のズームを規制したいと考え、mapType.maxZoom = 19; mapType.minZoom = 2;のようなものを記入しても何も変化しません。
上記スクリプトの表記のどこに何を入れれば規制できるのでしょうか。

追伸、google.maps.MapTypeId.TERRAINと地図と地形のみ表示指定しているのですが、実際は、地図と航空地図になります。

現在htmlにはhead内に
<script type="text/javascript"src="http://maps.googleapis.com/maps/api/js?key=123456&sensor=false"></script>
<script language="JavaScript" type="text/javascript" src="v3.js"></script>

v3スクリプト内に

//functionコード
function mapload() {
var latlng = new google.maps.LatLng(123,456);
var opts = {
zoom: 16,
center: latlng,

//マップタイプHYBRID(航空写真+地図)ROADMAP(地図)SATELLITE(航空写真)TERRAIN(地形)
mapTypeId: google.maps.MapTypeId....続きを読む

Aベストアンサー

そのままMapOptionsで指定すれば、maxZoom、minZoomともに動作しているように思いますが・・・?

https://developers.google.com/maps/documentation/javascript/reference?hl=ja#MapOptions

何か特殊な環境でテストなさってますか?


>mapType.maxZoom = 19; mapType.minZoom = 2;のようなものを記入しても何も変化しません。
mapTypeってご提示のコードにはないけれど…??
ご提示のコードで言えば、optsがMapOptionsに該当するはずです。

QTomcatの基本認証が8080ポートだと通るのに80ポートだと通らない

JSPファイルにアクセス制限をかけたかったため、
http://www.javaroad.jp/opensource/js_tomcat9.htm
を参考にして 基本認証をかける設定にしました。

そうすると、
http://localhost:8080/XXXX.jsp
のように8080ポートでは ちゃんと認証を行えるのに
http://localhost/XXXX.jsp
でアクセスすると、

ユーザ名
パスワード
ドメイン

を聞く ボックスがあらわれ、ユーザ名とパスワードを入力しても認証がとおりません。

8080でアクセスしたときには、ドメインを聞かれないのに、80でアクセスすると聞かれるんです。
また、認証エラーも TomcatではなくIISが出しているように思います。

80でアクセスしたとき、ドメインには何を指定すればよいのでしょうか?(マシン名や 空欄ではNG)
もしくはそもそも設定が間違っているのでしょうか?

教えてください。

Aベストアンサー

 設定が間違っているというよりかは、状況を正しく把握できていないのではないかと思う。

 IIS-Tomcat連携を行っている場合、WebブラウザとHTTPでやりとりをしているのはIISだ。図で説明すると以下のようになる。

  Tomcat-Engine
 |       |
TomHTTPD   IIS
 8080      80
 |       |
Webブラウザ  Webブラウザ

 つまり、80番につないで来たWebブラウザにBASIC認証のHTTPレスポンスを返すのは当然IISだ。この時、Tomcat-HTTPDは一切関与しない。

 なので、どうしても同じ動きをさせたければ、80番の特定のロケーションを8080にリバースプロクシするなどの、泥臭い設定を行わなければいけないだろう。

 まぁ、それが全てではないので、もっとTomcatに明るい人の回答を待ってみましょう。

Qgoogle maps api ルート線変更

Google Maps JavaScript API v3 でルート検索で表示されるポリラインの色や太さを変更したいのですが行き詰ってます。

ネットで調べてますと、polylineOptionのstrokeColorやstrokeWeightなどで変更できるような事は書いてあるのですが、どうやってもうまくいきません。


Googleデベロッパーで紹介されています下記のルートサービスのひな形をもとにいろいろやっているのですが、どこにどのように記述すればいいのでしょうか。

------------------------------------------------
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
var map;

function initialize() {
directionsDisplay = new google.maps.DirectionsRenderer();
var chicago = new google.maps.LatLng(41.850033, -87.6500523);
var mapOptions = {
zoom:7,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: chicago
}
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
directionsDisplay.setMap(map);
}

function calcRoute() {
var start = document.getElementById("start").value;
var end = document.getElementById("end").value;
var request = {
origin:start,
destination:end,
travelMode: google.maps.TravelMode.DRIVING
};
directionsService.route(request, function(result, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(result);
}
});
}
--------------------------------------------------

Google Maps JavaScript API v3 でルート検索で表示されるポリラインの色や太さを変更したいのですが行き詰ってます。

ネットで調べてますと、polylineOptionのstrokeColorやstrokeWeightなどで変更できるような事は書いてあるのですが、どうやってもうまくいきません。


Googleデベロッパーで紹介されています下記のルートサービスのひな形をもとにいろいろやっているのですが、どこにどのように記述すればいいのでしょうか。

------------------------------------------------
var directionsDisplay;
var ...続きを読む

Aベストアンサー

DirectionsRendererのoption設定で、色や太さを設定できます。


>ネットで調べてますと
map apiに関しては本家のgoogleから詳細なドキュメントが公開されていますので、そちらを調べるのが一番です。
(この回答もそこを見ただけです。)
https://developers.google.com/maps/documentation/javascript/reference?hl=ja#DirectionsRendererOptions


具体的には、初期設定で、
directionsDisplay = new google.maps.DirectionsRenderer();
directionsDisplay.setOptions({
 polylineOptions: { strokeColor:"#f00", strokeWeight:6 }
});
とか。


以前、似たようなルート検索の質問がありましたので、ご参考までに。
 http://oshiete.goo.ne.jp/qa/8159078.html

DirectionsRendererのoption設定で、色や太さを設定できます。


>ネットで調べてますと
map apiに関しては本家のgoogleから詳細なドキュメントが公開されていますので、そちらを調べるのが一番です。
(この回答もそこを見ただけです。)
https://developers.google.com/maps/documentation/javascript/reference?hl=ja#DirectionsRendererOptions


具体的には、初期設定で、
directionsDisplay = new google.maps.DirectionsRenderer();
directionsDisplay.setOptions({
 polylineOptions: { strokeColor:"#f...続きを読む

QStruts の logic タグの使い方?

Action でセッションにオブジェクトのリストを登録し、その後、Show.jsp 側でセッションにオブジェクトのリストがある場合は、そのリストを表示するプログラムを作ろうとしています。

実行すると

スコープ request にBean ActionFormForSearchResult がありません

とエラーになってしまいます。

ActionFormForSearchResult は、オブジェクトのリストを表すオブジェクトで Action が呼び出されたときにセッションに登録します。

jsp の記述は、次のような感じです。

<logic:iterate id="element" name="ActionFormForSearchResult" scope="request">
><bean:write name="element" property="intCorporationCode" />
</logic:iterate>

よろしくお願いします。

Aベストアンサー

iterateの使いかたを聞いていると思われますのでお答えします。
まず。エラーの通りだと思いますよ。
ActionFormForSearchResultというオブジェクトが存在していないのだと思います。
このオブジェクトはリクエストスコープですので、インラインフレームの中に表示しようとしても別のリクエストとなるので表示できません。

その辺を踏まえたうえでご自分のソースを今一度確認してみてください。

QGoogle maps API V3 ルート案内

2点間距離を測定するGoogle maps サンプル(下記)を入手したのですが、次のように手直ししたいと考えています。ご教授の程、よろしくお願い致します。

(1)出発地は決まっているので、「◯◯から」の◯◯の表示は必要ありません。
(2)そのかわり、出発地のポイントと名称をあらかじめ表示させておきたい。
(3)目的地の住所を入力して検索するだけで案内が表示される。


<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=yes">
<title>Google Maps API v3 Directions Draggable</title>
<style type="text/css">
body {background-color: #B7C4C8; font-family: Arial, "MS PGothic"; text-align: center; font-size: small;}
div#wrapper {width: 728px; margin: 0 auto; padding: 0; text-align: left;}
</style>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var rendererOptions = {draggable: true};
var directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);
var directionsService = new google.maps.DirectionsService();
var map;
var aqui = new google.maps.LatLng(35.69, 139.71);
function initialize() {
var myOptions = {zoom: 10, center: aqui, mapTypeId: google.maps.MapTypeId.ROADMAP};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
directionsDisplay.setMap(map);
directionsDisplay.setPanel(document.getElementById("directionsPanel"));
google.maps.event.addListener(directionsDisplay, "directions_changed", function() {
computeTotalDistance(directionsDisplay.directions);
});
calcRoute();
}
function calcRoute(fromAddress, toAddress) {
var selectedMode = document.getElementById("mode").value;
var fromAddress = document.getElementById("fromAddress").value;
var toAddress = document.getElementById("toAddress").value;
var request = {origin: fromAddress, destination: toAddress, travelMode: google.maps.DirectionsTravelMode[selectedMode]};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
}
function computeTotalDistance(result) {
var total = 0;
var myroute = result.routes[0];
for (i = 0; i < myroute.legs.length; i++) {
total += myroute.legs[i].distance.value;
}
total = total / 1000.
document.getElementById("total").innerHTML = total + " km";
}
</script>
</head>
<body onload="initialize()">
<div id="wrapper">
<div style="margin-bottom: 8px;">
<strong>Directions: モード=</strong>
<select id="mode" onchange="calcRoute();">
<option value="DRIVING">車</option>
<option value="WALKING">歩き</option>
</select>

<form action="#" onsubmit="calcRoute(this.fromAddress.value, this.toAddress.value); return false">
<input type="text" size="12" id="fromAddress" name="from" value=""/>から~
<input type="text" size="12" id="toAddress" name="to" value="" />へのルートを
<input name="submit" type="submit" value="検索" />またはドラッグ&ドロップ
</form>
</div>

<div id="map_canvas" style="float:left; width:500px; height:400px;"></div>
<div id="directionsPanel" style="margin-left: 505px; width:223px; height: 400px; overflow: auto; background-color: #FFF;"><p>距離:

<span id="total"></span></p></div>
<div style="margin-top: 12px;">
<script type="text/javascript"><!--
google_ad_client = "ca-pub-9624687380026797";
/* 728-90Big */
google_ad_slot = "2458118948";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
<!--/ #wrapper--></div>
<script type="text/javascript">
<!--
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-1220676-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script');
ga.src = 'http://www.google-analytics.com/ga.js';
ga.setAttribute('async', 'true');
document.documentElement.firstChild.appendChild(ga);
})();
// -->
</script>
</body>
</html>

以上です。よろしくお願い致します。

2点間距離を測定するGoogle maps サンプル(下記)を入手したのですが、次のように手直ししたいと考えています。ご教授の程、よろしくお願い致します。

(1)出発地は決まっているので、「◯◯から」の◯◯の表示は必要ありません。
(2)そのかわり、出発地のポイントと名称をあらかじめ表示させておきたい。
(3)目的地の住所を入力して検索するだけで案内が表示される。


<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, max...続きを読む

Aベストアンサー

コードを見て、適当に作ってみました。
こんな感じでどうでしょう。
http://googlemaps.googlermania.com/okwave/q7611516.html

Q(Struts)Logicタグについて

bean内にString型配列name[],no[],key[]を取っている状態で、jspページに表を表示しようとおもっております。

<table>
 <logic:iterate id="name" name="bean名"
property="name">
  <tr>
   <bean:write name="name"/>
  </tr>
 </logic:iterate>
</table>

上記の方法で一列を表示することはできたのですが、
複数列を表示する方法がよくわかりません。

<logicタグ>
<name配列>
<no配列>
<key配列>
</logic>
のような形で表示することはできませんでしょうか?
すべての列を一つの表にできれば他の方法でもかまいません。
よろしくお願いいたします。

Aベストアンサー

strutsのiterateを使用するより、JSTLCoreタグのforEachを使用したら楽に実現できると思います。

参考URL:http://www.salicaceae.net/jstl/core.html

Qgoogle maps APIのジオコーディング

google maps APIで2箇所の住所を入力し、ジオコーディングし、マーカーを表示させ、2箇所のマーカーの中間点が画面の中心になるように表示させたいのですが、なかなか地図の中心を移動できません。どのようにすればうまくできるでしょうか?

//HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title> ジオコーディング</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0px; padding: 0px }
#map_canvas { height: 100% }
</style>
</head>

<body onload="initialize()">
<div>
地点1<input id="start" type="textbox" size="50"><br>
地点2<input id="goal" type="textbox" size="50">
<input type="button" value="地図表示" onclick="codeAddress()">
</div>
<div id="map_canvas" style="height:80%"></div>
<br>地点1
<div id="geocoder_info" style="height:10%"></div>
地点2
<div id="geocoder_info2" style="height:10%"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://maps.google.com/maps/api/js?sensor=false"> </script>
<script src="geocode.js"></script>
</body>
</html>

//javascript geocode.js

var map;
var geocoder;

function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(35.699338,139.705146);
var myOptions = {
zoom: 12,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map($("#map_canvas").get(0), myOptions);
}

function codeAddress() {

var address = document.getElementById("start").value;
var info = document.getElementById("geocoder_info");

geocoder.geocode( {'address': address},function(results, status) {
info.innerHTML = results[0].formatted_address + "<br>" + results[0].geometry.location;
if (status == google.maps.GeocoderStatus.OK) {
Slat = results[0].geometry.location.lat();
Slng = results[0].geometry.location.lng();
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
} else {
alert("次の理由でジオコーディングに失敗しました: " + status);
}
});


var address2 = document.getElementById("goal").value;
var info2 = document.getElementById("geocoder_info2");

geocoder.geocode( { 'address': address2},function(results2, status2) {
info2.innerHTML = results2[0].formatted_address + "<br>" + results2[0].geometry.location;
if (status2 == google.maps.GeocoderStatus.OK) {
Glat = results2[0].geometry.location.lat();
Glng = results2[0].geometry.location.lng();
var marker2 = new google.maps.Marker({
map: map,
position: results2[0].geometry.location
});
} else {
alert("次の理由でジオコーディングに失敗しました: " + status);
}
});
latCenter = ((results[0].geometry.location.lat()) + (results2[0].geometry.location.lat()))/2;
lngCenter = ((results[0].geometry.location.lng()) + (results2[0].geometry.location.lng()))/2;
map.setCenter(latCenter,lngCenter);
}

google maps APIで2箇所の住所を入力し、ジオコーディングし、マーカーを表示させ、2箇所のマーカーの中間点が画面の中心になるように表示させたいのですが、なかなか地図の中心を移動できません。どのようにすればうまくできるでしょうか?

//HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title> ジオコーディング</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0px; p...続きを読む

Aベストアンサー

setCenterの呼び出し位置がまずいですね。
ジオコーディングに成功して座標がとれた段階で実行するように変更すればうまくいきます。

var map;
var geocoder;
var Slat = null,Slng = null,Glat = null,Glng = null; // add

function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(35.699338,139.705146);
var myOptions = {
zoom: 12,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map($("#map_canvas").get(0), myOptions);
}

// add function
function moveCenter(){
if(Slat && Slng && Glat && Glng){
latCenter = (Slat + Glat)/2;
lngCenter = (Slng + Glng)/2;
map.setCenter(new google.maps.LatLng(latCenter,lngCenter));
}
}
function codeAddress() {

var address = document.getElementById("start").value;
var info = document.getElementById("geocoder_info");

Slat = Slng = Glat = Glng = null; //add

geocoder.geocode( {'address': address},function(results, status) {
info.innerHTML = results[0].formatted_address + "<br>" + results[0].geometry.location;
if (status == google.maps.GeocoderStatus.OK) {
Slat = results[0].geometry.location.lat();
Slng = results[0].geometry.location.lng();
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
moveCenter();//add
} else {
alert("次の理由でジオコーディングに失敗しました: " + status);
}
});


var address2 = document.getElementById("goal").value;
var info2 = document.getElementById("geocoder_info2");
geocoder.geocode( { 'address': address2},function(results2, status2) {
info2.innerHTML = results2[0].formatted_address + "<br>" + results2[0].geometry.location;
if (status2 == google.maps.GeocoderStatus.OK) {
Glat = results2[0].geometry.location.lat();
Glng = results2[0].geometry.location.lng();
var marker2 = new google.maps.Marker({
map: map,
position: results2[0].geometry.location
});
moveCenter();//add
} else {
alert("次の理由でジオコーディングに失敗しました: " + status);
}
});
}

setCenterの呼び出し位置がまずいですね。
ジオコーディングに成功して座標がとれた段階で実行するように変更すればうまくいきます。

var map;
var geocoder;
var Slat = null,Slng = null,Glat = null,Glng = null; // add

function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(35.699338,139.705146);
var myOptions = {
zoom: 12,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map($("#map_canvas").get(0...続きを読む

Qstruts.jarファイルについて

Struts(フレームワーク)を使用してWebアプリケーションの作成をしておりますが、
作成したソースファイルをコンパイルした際に以下のErrorとなります。
---------------------------------------------------------
C:\Users\workspace\Sample\WEB-INF\classes>javac Page1Action.java
Page1Action.java:5: パッケージ org.apache.struts.action は存在しません。
import org.apache.struts.action.Action;
                     ^
---------------------------------------------------------

Errorメッセージについて調べたところ、struts.jarをクラスパスに指定していないことが原因との情報を見つけました。
私の環境にはstruts.jarファイルが見つからないのですが、このファイルはstrutsをインストールすれば必ず存在するファイルなのでしょうか?
また、上記Errorの発生原因についてですが、struts.jarをクラスパスに指定していないことによるものなのでしょうか?

どなたかご存知でしたらご教授願います。

Struts(フレームワーク)を使用してWebアプリケーションの作成をしておりますが、
作成したソースファイルをコンパイルした際に以下のErrorとなります。
---------------------------------------------------------
C:\Users\workspace\Sample\WEB-INF\classes>javac Page1Action.java
Page1Action.java:5: パッケージ org.apache.struts.action は存在しません。
import org.apache.struts.action.Action;
                     ^
------------------------------------------------...続きを読む

Aベストアンサー

このStrutsというのは、Struts1のこと、Struts2のこと?

1ならば、struts-core-1.x.x.jar,struts-taglib-1.x.x.jar,struts-tiles-1.x.x.jarといったファイルになる。2ならば、struts2-core-2.x.x.jarのみとなる。ただし、それに付随して多数のJarファイルが必要になる。

インストールは、どうやっているんだろうか。一般的には、WebアプリケーションのWEB-INF/lib内にJarファイルをコピーするか、あるいはJavaサーブレットコンテナ(Tomcatなどね)のライブラリディレクトリにJarをコピーするかするだろう。わざわざClasspathにJarのパスを追加する人はあんまりいないんでないか。(まぁ、これでもJarは認識するが、サーブレットコンテナのみでしか使わないものをClasspathに入れるのは個人的に推奨できないかな)

以上、確認してみてください。


人気Q&Aランキング

おすすめ情報