Struts-2.2.1.1で画面を作ろうとしています。
他環境はTomcat7、jdk1.6、eclipse3.6.2です。

WEB-INF/libには、struts2-blank.warを解凍した中にあった
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
freemarker-2.3.16.jar
javassist-3.7.ga.jar
ognl-3.0.jar
struts2-core-2.2.1.1.jar
xwork-core-2.2.1.1.jar
を配置しています。

Struts1の初期に少し触った程度でタグライブラリはほとんど知識がありません。


<%@ page pageEncoding="Windows-31J" contentType="text/html; charset=Windows-31J" %>
<%@ taglib prefix="s" uri="/struts-tags" %>

<HTML>
<HEAD>
<LINK rel="stylesheet" type="text/css" href="/pj/contents/css/default.css">
</HEAD>

<BODY>
<s:form action="Login" theme="simple" >

<TD class="aaa"><s:textfield key="shozokucd" styleClass="bbb"/></TD>
</s:form>

</BODY>
</HTML>


TDに対してclass指定したスタイルは反映されているのでcss参照は問題ありません。
jsp表示結果では、sタグでinputタグが出力されているのでstruts-tagsも参照できています。

sタグ内でclass指定したい場合、classではなく、styleClassで記述しなければならないところまでは分かったのですが
styleClassにcssのクラス名を指定するだけではスタイルが反映されません。
(jsp表示結果では styleClass="bbb"のまま出力されている。)

StrutsのUIタグの中でstyleClassを指定する場合、cssファイルではなくタグ用に別形式で何か用意しなければいけないのでしょうか。
「Struts スタイルシート」や「Struts styleClass」で検索しても情報が得られませんでした。

初歩的な質問ですが、よろしくお願いいたします。

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

A 回答 (1件)

Struts2は殆どさわったことがないので外れているかもしれませんが、


http://struts.apache.org/2.x/textfield.html
を見る限り、「styleClass」という属性はないようですよ。
「cssClass」ではないのでしょうか?
まずは公式リファレンスを確認してみるといいと思いますよ。
自分は英語は全然ダメですが、分からないとことがあるときは見るようにしています。
    • good
    • 0
この回答へのお礼

yamada_gさま

ご回答ありがとうございます!

「styleClass」は検索して見つけたStrutsを説明しているブログと
JakartaのStrutsガイドに書いてあったのを信じこんでいたのですが
Struts1の書き方と違うのですね。
Struts2の公式ページで「styleClass」の説明を検索していましたorz

cssClass="bbb"と書けば、class="bbb"と出力されるんですね。
先ほどfielderror.ftlの中身を見ていて

cssClass
cssStyle

を見つけ、理解しました。

どうにも進められなくて困っていました。
大変助かりました。
本当にありがとうございます。

お礼日時:2011/04/18 12:02

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

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

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

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

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

Qstrutsでファイルダウンロード(WinでOK,linuxでNG)

strutsでWindowsのexeファイルのダウンロードを実装しましたが、Windows上のtomcatにdeployすると正常にダウンロードできるのに、linux(fedora-core3)上のtomcatにdeployすると、ダウンロードしたファイルがhtmlになってしまいます。
hoge.exeという名前のファイルはダウンロードできるのですが、それが実はテキストで、メモ帳で開くと、ダウンロード画面のhtmlが表示されます。

この状況は何によって生み出されているのでしょうか。
お分かりになる方、ヒントをお願いいたします。

以下にファイルダウンロード部のソース(抜粋)を掲載させていただきます。
----- 以下ソース -----
protected void download(HttpServletResponse response, String fileType, String filename) {

try {

// exeファイルのダウンロード時
if (fileType.equals("application/octet-stream")) {
response.setHeader("Content-Disposition", "attachment; filename=" + filename);
}

response.setContentType(fileType);

BufferedInputStream bis = new BufferedInputStream(new FileInputStream(filename));
BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());

byte[] buf = new byte[128];

int size;
while ((size = bis.read(buf, 0, buf.length)) != -1) {
bos.write(buf, 0, size);
}

bos.close();
bis.close();

} catch (IOException e) {
throw new thisSystemException("could not send file[" + filename + "]");
}

strutsでWindowsのexeファイルのダウンロードを実装しましたが、Windows上のtomcatにdeployすると正常にダウンロードできるのに、linux(fedora-core3)上のtomcatにdeployすると、ダウンロードしたファイルがhtmlになってしまいます。
hoge.exeという名前のファイルはダウンロードできるのですが、それが実はテキストで、メモ帳で開くと、ダウンロード画面のhtmlが表示されます。

この状況は何によって生み出されているのでしょうか。
お分かりになる方、ヒントをお願いいたします。

以下にファイルダウン...続きを読む

Aベストアンサー

>hoge.exeという名前のファイルはダウンロードできるのですが、それが実はテキストで、メモ帳で開くと、ダウンロード画面のhtmlが表示されます。

これが妙ですね。要するに、hoge.exeではなく、誤って○○.htmlのファイルが送られている、ということですよね。
 WindowsとLinuxの違いというと、ファイルのパスが違うというのが思い浮かぶんですが、ひょっとしてdownloadメソッドを呼び出す際に渡される引数の値そのものが意図したものと違っている可能性はないでしょうか。
 例えば、渡されているfilenameはどのようなものでしょうか。RealPath(絶対パス)になってますか? ひょっとして相対パスのままだったりファイル名のみだったりしませんか?
 まずは引数がすべて正常に渡されているかどうかを確認してみてはいかがでしょう。

QStruts1.1と1.2

Struts1.1と1.2とではどちらが安定しているのでしょうか?

Eclipseを使って開発をしようと思っているのですが、ソースの自動生成ができるプラグインEasy StrutsがStruts1.1にしか対応していないんです。

大差ないのであれば、Eclipseプラグインを使って開発工数を削減できるStruts1.1にしようと思っています。

Aベストアンサー

1.1と1.2ではどちらが安定しているか?というのはちょっとわからないのですが・・、既に1.2も登場からかなり経過し、マイナーチェンジでバグも抜けてきていると思いますので、安定性に関しては心配はないように思えます。
 むしろ、Easy_Strutsが一番不安定では(笑)。

1.1で問題ないならば1.1を使ってよいと思いますが、1.2からけっこう変わった部分があります。単に新機能が増えたというだけでなく、1.2から仕組みが変わり推奨されなくなったメソッドなどもありますので、また1.2で覚え直すのはちょっと手間かな?という気もします。
 例えばStrutsIDEやExadel Studioなど、Eclipse + Strutsのプラグインは他にもありますし、それらとも比較検討してみてはいかがでしょう。

参考URL:http://www.eclipsewiki.net/eclipse/?Struts%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3

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スタイルシートを利用してリスト行の色分け方法

スタイルシートを利用して、リストを作成しています。
基本的には、dd や li を利用して、表示させたいと思います。その際に、1行毎に、バックグランドに色を入れたいと思います。

スタイルシートだけでは、出来ないと思います。
今は、1行毎に class を設定していますが、class を設定せずに自動で色分けが出来るようにしたいと思います。

JavaScript を利用すれば可能でしょうか。
希望を言わせて頂ければ、1ページ内に複数のリストが有り、行の色分が適用されるリストと、適用されないリストを分ける事が出来れば嬉しく思います。

参考になるアドバイスを頂ければと思います。

Aベストアンサー

ulのclassやidをみながらliのclassを設定してやればよいでしょう。

<html>
<head>
<style>
.li1{background-Color:#ffc0c0;}
.li2{background-Color:#c0ffc0;}
.li3{background-Color:#c0c0ff;}
.li4{background-Color:#ffffc0;}
.li5{background-Color:#ffc0ff;}
</style>
<script>
window.onload=function(){
var liclasses=Array("li1","li2","li3","li4","li5");
var uls=document.getElementsByTagName("ul");
for(var i=0;i<uls.length;i++){
if(uls[i].className=="hoge")
var lis=uls[i].getElementsByTagName("li");
for(var j=0;j<lis.length;j++){
if(liclasses.length>j) lis[j].className=liclasses[j];
}
}
}
</script>
</head>
<body>
<ul class="hoge">
<li>1行目</li>
<li>2行目</li>
<li>3行目</li>
<li>4行目</li>
<li>5行目</li>
</ul>
<ul>
<li>1行目</li>
<li>2行目</li>
<li>3行目</li>
<li>4行目</li>
<li>5行目</li>
</ul>
<ul class="hoge">
<li>1行目</li>
<li>2行目</li>
<li>3行目</li>
<li>4行目</li>
<li>5行目</li>
</ul>
</body>
</html>

ulのclassやidをみながらliのclassを設定してやればよいでしょう。

<html>
<head>
<style>
.li1{background-Color:#ffc0c0;}
.li2{background-Color:#c0ffc0;}
.li3{background-Color:#c0c0ff;}
.li4{background-Color:#ffffc0;}
.li5{background-Color:#ffc0ff;}
</style>
<script>
window.onload=function(){
var liclasses=Array("li1","li2","li3","li4","li5");
var uls=document.getElementsByTagName("ul");
for(var i=0;i<uls.length;i++){
if(uls[i].className=="hoge")
...続きを読む

Qstrutsのサンプル画面について

初めてstruts開発に携わる初心者です。
下記環境で、strutsのインストール確認を行おうと思うのですが
「The requested resource (/struts-examples/) is not available.」とエラーが発生してしまい大変困っています。
<環境>
struts-1.3.8
Tomcat 6.0
jdk1.6.0_06
windowsXP
<手順>
(1)それぞれをダウンロード&インストール
(2)JAVA_HOME、CATALINA_HOMEを設定
(3)struts-1.3.8\apps下のwarファイルをTomcat 6.0\webappsにコピー
(4)http://localhost:8080/struts-blank-1.3.8で動作確認
<出力されたログ>
情報: Coyote HTTP/1.1を http-8080 で初期化します
2008/07/26 22:07:38 org.apache.catalina.startup.Catalina load
情報: Initialization processed in 1148 ms
2008/07/26 22:07:38 org.apache.catalina.core.StandardService start
情報: サービス Catalina を起動します
2008/07/26 22:07:38 org.apache.catalina.core.StandardEngine start
情報: Starting Servlet Engine: Apache Tomcat/6.0.16
2008/07/26 22:07:38 org.apache.catalina.startup.HostConfig deployWAR
情報: Webアプリケーションアーカイブ struts-examples-1.3.8.war を配備します
2008/07/26 22:07:41 org.apache.struts.action.ActionServlet initChain
情報: Loading chain catalog from jar:file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%206.0/webapps/struts-examples-1.3.8/WEB-INF/lib/struts-core-1.3.8.jar!/org/apache/struts/chain/chain-config.xml
2008/07/26 22:07:42 org.apache.struts.validator.ValidatorPlugIn initResources
情報: Loading validation rules file from '/org/apache/struts/validator/validator-rules.xml'
2008/07/26 22:07:42 org.apache.struts.validator.ValidatorPlugIn initResources
情報: Loading validation rules file from '/WEB-INF/upload/validation.xml'
2008/07/26 22:07:43 org.apache.struts.config.impl.ModuleConfigImpl addFormBeanConfig
警告: Overriding ActionForm of name localeForm
2008/07/26 22:07:43 org.apache.struts.validator.ValidatorPlugIn initResources
情報: Loading validation rules file from '/org/apache/struts/validator/validator-rules-compressed.xml'
2008/07/26 22:07:43 org.apache.struts.validator.ValidatorPlugIn initResources
情報: Loading validation rules file from '/WEB-INF/validator/validation.xml'
2008/07/26 22:07:43 org.apache.struts.validator.ValidatorPlugIn initResources
情報: Loading validation rules file from '/WEB-INF/validator/validation-bundles.xml'
2008/07/26 22:07:43 org.apache.struts.validator.ValidatorPlugIn initResources
情報: Loading validation rules file from '/WEB-INF/validator/validation-i18nVariables.xml'
2008/07/26 22:07:43 org.apache.struts.validator.ValidatorPlugIn initResources
情報: Loading validation rules file from '/WEB-INF/validator/validation-type.xml'
2008/07/26 22:07:43 org.apache.struts.validator.ValidatorPlugIn initResources
情報: Loading validation rules file from '/WEB-INF/validator/validation-validwhen.xml'
2008/07/26 22:07:44 org.apache.coyote.http11.Http11Protocol start
情報: Coyote HTTP/1.1を http-8080 で起動します
2008/07/26 22:07:44 org.apache.jk.common.ChannelSocket init
情報: JK: ajp13 listening on /0.0.0.0:8009
2008/07/26 22:07:44 org.apache.jk.server.JkMain start
情報: Jk running ID=0 time=0/46 config=null
2008/07/26 22:07:44 org.apache.catalina.startup.Catalina start
情報: Server startup in 5831 ms
初歩的な質問ですが何卒よろしくお願いします。

初めてstruts開発に携わる初心者です。
下記環境で、strutsのインストール確認を行おうと思うのですが
「The requested resource (/struts-examples/) is not available.」とエラーが発生してしまい大変困っています。
<環境>
struts-1.3.8
Tomcat 6.0
jdk1.6.0_06
windowsXP
<手順>
(1)それぞれをダウンロード&インストール
(2)JAVA_HOME、CATALINA_HOMEを設定
(3)struts-1.3.8\apps下のwarファイルをTomcat 6.0\webappsにコピー
(4)http://localhost:8080/struts-blank-1.3.8で動作...続きを読む

Aベストアンサー

h ttp://localhost:8080/struts-examples-1.3.8/ でサンプルに接続できないでしょうか?
もしくはwarファイル名の『-1.3.8』を消して『-1.3.8』無しで接続してみてください。

Qstrutsとstruts2.0のスピード

同時接続者が多いSNSサイトの場合
strutsで作成されたプロジェクトと、
struts2で作成された場合どちが早いし軽いですか。
同時接続者が多いSNSサイトを製作する時、特に
お勧めのjavaフレームワークがあったら教えて頂きたいです。

ではお答え宜しくお願い致します。

Aベストアンサー

フレームワーク部はほぼ常時メモリ上にキャッシュされたままになると思うので、
特にメモリ効率の悪いつくりをしない限り、どちらでも変わらないのではないかと思います。
どちらかというと、DBアクセスやログ出力等のI/Oの方が、アクセスタイムに対し大きな比重を占めると思いますので、そちらに留意した方が良いと思います。

単純な比較は出来ないかもしれませんが
6桁程度の会員数のパブリックなSNSを、struts1.3を利用して構築したことがありますが、アプリケーションの実行速度で大きな問題はありませんでした。

QStrutsをOracleiAS使用可能ですか?

現在、業務でOracle iASをサーバにStrutsフレームワークのアプリケーションを動かそうとしています。
そこで質問なのですが、これは可能なのでしょうか?
バージョンは
・Struts1.1正式版
・Oracle 9iAS (9.0.2)
です。
OSは、現在見ているものではMiracle Linux(バージョンは不明)となります。

以上、よろしくお願いいたします。

Aベストアンサー

参考URLでは9iAS(9.0.2)環境(正確にはJDeveloper9.0.3環境)でStrutsと連携可能と書いてありますので出来るでしょう。OSもMiracle Linuxでokのはずです(今年に入って正式に対応したはず・・・)。

但し当方、質問の環境での開発経験がありませんので、どの程度の作業(移行ですかね?)が必要なのかは全く分りません。すみません。。。

参考URL:http://www.oracle.co.jp/9i/9ias/edition_function/top.html

Qstrutsのstruts-config.xmlでのエラーメッセージ

こんばんは

strutsのエラーメッセージ表示で困っています。
javaでthrowしてstruts-config.xmlのexceptionで
エラーを表示します。

以下のようにコーディングしてあり、
key999に定義してあるメッセージを表示することはできます。

しかしmessagesにセットしたメッセージを表示することができません。

messagesにセットしたメッセージを表示するにはstruts-config.xmlの
keyはどのように設定すればよいのでしょうか?

よろしくお願いします。

*struts-config.xml
<exception
key="999"
type="myException"
path="xxxxxxxxxx.jsp"
handler="myExceptionHandler"/>

*java
public ActionForward hoge(
ActionMapping map,
ActionForm form,
HttpServletRequest req,
HttpServletResponse res
) throws Exception {
try {
return map.findForward("XXXXX");

} catch (myException e) {
ActionMessages messages = new ActionMessages();
messages.add("error" ,new ActionMessage("001","エラー"));
saveMessages(req,messages);
throw e;
}
}

こんばんは

strutsのエラーメッセージ表示で困っています。
javaでthrowしてstruts-config.xmlのexceptionで
エラーを表示します。

以下のようにコーディングしてあり、
key999に定義してあるメッセージを表示することはできます。

しかしmessagesにセットしたメッセージを表示することができません。

messagesにセットしたメッセージを表示するにはstruts-config.xmlの
keyはどのように設定すればよいのでしょうか?

よろしくお願いします。

*struts-config.xml
<exception
key="999...続きを読む

Aベストアンサー

Strutsのバージョンが分からないので、1.2.7での話ですが、
ソースを読む限り、
スローしている例外を、ModuleExceptionにするとできるみたいです。

} catch (myException e) {
throw new ModuleException("001","エラー");
}

参考URL:http://pistos.pe.kr/javadocs/repository/3/1.2.7/apidocs/org/apache/struts/util/ModuleException.html

Qstruts2のMaven ProjectをEclipseで作成

しようとしたのですが
作成メニューのNexus Indexerのページで
struts 2を探したのですが
Struts 2最新バージョンのstruts2.1.6でなく
struts2.0.11.2しかありません。
struts2.1.6のMaven ProjectをEclipsse3.42で作成したいのですが
どうしたらいいでしょうか?

Aベストアンサー

あぁ、すみません、

# mvn archetype:generate -B \
> -DremoteRepositories=​​http://www.lenart.org.pl/maven​ \
> -DgroupId=tutorial \
> -DartifactId=tutorial \
> -DarchetypeGroupId=org.apache.struts \
> -DarchetypeArtifactId=struts2-archetype-blank \
> -DarchetypeVersion=2.1.6

じゃなくて、
mvn archetype:generate -DarchetypeCatalog=​http://www.lenart.org.pl/maven​ だけでやってみてください。するとインタラクティブなメニューがでると思うので、指示に従って進んでみてください。

QStruts の画面遷移について

現在Struts1.1で開発しております。
Strutsどころか、Javaもほぼ初めてなのでテンパってます。
言葉で説明するのはとても難しいく、分かりにくいと思いますが、
何かアドバイスをお願い致します。

【質問】
A画面、B画面、共通検索画面があり
A→共通→A
B→共通→B
の画面遷移をします。

このとき、AまたはBで選択された値を共通画面のtextフィールドに反映します。
遷移後の共通検索画面で対象データ検索し、選択された値を呼び元(AまたはB)に返します。
さらにAまたはBでは遷移前の情報は保持しなければいけません。
どうして作ったら良いか分かりません。

非常に困ってます。。。

Aベストアンサー

個別の画面(AとかBとか)の種類は少ないのでしょうか?少ないのでしたら共通部分も別アクションとしてアクションクラスを同一のものにすればいかがでしょうか?
個別の画面の種類が多いのでしたら個別の画面でのアクションクラスでセッションにフラグを持たせ、共通画面のアクションクラスで、そのフラグを元にして画面の繊維先を振り分ければいいと思います。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報