PDA

View Full Version : سوال: مشکل با useBean



hesampersian
جمعه 29 آذر 1387, 23:27 عصر
سلام، من یک مشکلی با این useBean دارم که ارور میده لطفا شما یک نگاهی بیاندازید:

من برای مثال 2 تا فایل beans.jsp و beans.html و کلاس LanguageBean رو دارم با محتوا های زیر:


beans.jsp


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="lBean" scope="page" class="LanguageBean" />
<jsp:setProperty name="lBean" property="*"/>
<html>
<head><title>For Beans Test</title></head>
<body>
Name IS : <jsp:getProperty name="lBean" property="name" />
<br>
Your Lang IS : <jsp:getProperty name="lBean" property="language" />
<br>

</body>
</html> beans.html


<html>
<head><title>Simple jsp page</title></head>
<body>
<h1>New Form Of Beans Test</h1>
<form method="post" action="beans.jsp">
<p>Pleas Enter Your Name :
<input type="text" name="name"/>
<br>
Languge :
<select name="language">
<option value="JAVA">JAVA</option>
<option value="PHP">PHP</option>
<option value="C#">C#</option>
</select>
<input type="submit" value="Send Information">
</p>
</form>
</body>
</html>LanguageBean


public class LanguageBean implements Serializable
{
private String name;
private String language;
// private String languagecomments;


public LanguageBean()
{

}

public String getLanguage() {
return language;
}

public void setLanguage(String language) {
this.language = language;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

/* public String getLanguageComments()
{
String languagecomments = "";
if (language.equals("JAVA")) { languagecomments = "The Best Lang For EVER."; }
else if (language.equals("PHP")) { languagecomments = "The Best Lang For OpenSource.";}
else if (language.equals("C#")) { languagecomments = "The Best Lang For .NET."; }
else languagecomments = "Oh Sorry" + language + ".";
return languagecomments ;
} */

}
و مطمئنا کار برنامه تابلو، اینکه اسم و زبان را از فایل usebean.html بفرستیم به usebean.jsp و اون عملیات رو انجام بده و مقادیر رو نمایش بده ولی ارور ها در فایل beans.jsp هستند و شامل سه خط زیرند:


Error:(9,7) LanguageBean cannot be resolved to a type

Error:(17,0) LanguageBean cannot be resolved to a type

Error:(19,0) LanguageBean cannot be resolved to a type


که به ترتیب به خطوط زیر اشاره دارند:



<jsp:useBean id="lBean" scope="page" class="LanguageBean" />
Name IS : <jsp:getProperty name="lBean" property="name" />
Your Lang IS : <jsp:getProperty name="lBean" property="language" />
اگر زحمت بکشید و راهنمایی کنید واقعا ممنون میشم چون خیلی وقتم داره میگیره!:ناراحت:

javaphantom
شنبه 30 آذر 1387, 00:11 صبح
سلام، من یک مشکلی با این useBean دارم که ارور میده لطفا شما یک نگاهی بیاندازید:

من برای مثال 2 تا فایل beans.jsp و beans.html و کلاس LanguageBean رو دارم با محتوا های زیر:


beans.jsp


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="lBean" scope="page" class="LanguageBean" />
<jsp:setProperty name="lBean" property="*"/>
<html>
<head><title>For Beans Test</title></head>
<body>
Name IS : <jsp:getProperty name="lBean" property="name" />
<br>
Your Lang IS : <jsp:getProperty name="lBean" property="language" />
<br>

</body>
</html> beans.html


<html>
<head><title>Simple jsp page</title></head>
<body>
<h1>New Form Of Beans Test</h1>
<form method="post" action="beans.jsp">
<p>Pleas Enter Your Name :
<input type="text" name="name"/>
<br>
Languge :
<select name="language">
<option value="JAVA">JAVA</option>
<option value="PHP">PHP</option>
<option value="C#">C#</option>
</select>
<input type="submit" value="Send Information">
</p>
</form>
</body>
</html>LanguageBean


public class LanguageBean implements Serializable
{
private String name;
private String language;
// private String languagecomments;


public LanguageBean()
{

}

public String getLanguage() {
return language;
}

public void setLanguage(String language) {
this.language = language;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

/* public String getLanguageComments()
{
String languagecomments = "";
if (language.equals("JAVA")) { languagecomments = "The Best Lang For EVER."; }
else if (language.equals("PHP")) { languagecomments = "The Best Lang For OpenSource.";}
else if (language.equals("C#")) { languagecomments = "The Best Lang For .NET."; }
else languagecomments = "Oh Sorry" + language + ".";
return languagecomments ;
} */

}
و مطمئنا کار برنامه تابلو، اینکه اسم و زبان را از فایل usebean.html بفرستیم به usebean.jsp و اون عملیات رو انجام بده و مقادیر رو نمایش بده ولی ارور ها در فایل beans.jsp هستند و شامل سه خط زیرند:


Error:(9,7) LanguageBean cannot be resolved to a type

Error:(17,0) LanguageBean cannot be resolved to a type

Error:(19,0) LanguageBean cannot be resolved to a type


که به ترتیب به خطوط زیر اشاره دارند:



<jsp:useBean id="lBean" scope="page" class="LanguageBean" />
Name IS : <jsp:getProperty name="lBean" property="name" />
Your Lang IS : <jsp:getProperty name="lBean" property="language" />
اگر زحمت بکشید و راهنمایی کنید واقعا ممنون میشم چون خیلی وقتم داره میگیره!:ناراحت:







من به کل برنامت الان کاری ندارم فقط این چند نکته ای که بهت می گم رو برو چک بکن اگر درست بود دوباره پست بزار و اگر نبود درست کن بعد امتحان کن مطمئن باش که کار می کنه.

۱. جایی که بای کلاس تو قرار بگیره باید داخل فلدر WEB-INF و در داخل فلدر classes باشه. اگر خواستی در داخل package خواصی باشه حتما باید اون package یا همان فلدر در داخل فلدر classes باشه. اسامی حروف باید به همین شکلی که می گم باشه. در صورتی که از package خواصی استفاده می کنی همانطور که گفتم باید توی فلدر classes باشه بعد در قسمت jsp یعنی فایل jspیت اون package رو باید معرفی کنی
همون بالا اول خط بدین شکل

<%@page contentType="text/html" pageEncoding="UTF-8" import="beans.*"%>
همانطور که می بینی من در داخل فلدر classes یک فلدر دیگه ساختم به نام beans و در اینجا هرچی کلاس داخل این package یا همان فلدر وجود داره رو import کردم. احتمال می دم که توام این کار رو رعایت نکردی.
یک بار دیگه چک کن گیر کردی پست بزار

hesampersian
شنبه 30 آذر 1387, 00:28 صبح
ممنون که پاسخ دادید، درسته من این کارهارو نکردم ولی....
الان هم فولدری به اسم classes در داخل WEB-INF ندیدم و خودم دستی درست کردم! و حالا باید کلاس رو اینجا کپی کنم یا فایل beans.jsp رو؟؟

چون اول جمله شما رو متوجه نشدم؟!

javaphantom
شنبه 30 آذر 1387, 00:41 صبح
نه دیگه از اسم classes معلومه که باید فایلهایی رو که به زبان جاوا نوشتی و compile کردی بندازی اوتو مانند servlet ها.
برای اینکه قاطی نشه bean هات با servlet هات توی همون فلدر classes یک فلدر یک فلدر درست کن مثل من اسمش رو بزار beans بعد اون رو compile و class فایل رو بزار اون تو jsp های تو اگرمعمولا در کنار WEB-INF تو هستن اگر داخل WEB-INF بزاری داستانش فرق می کنه دیگه قابل دسترس نیست و یکم باید روی web.xml کار کنی. فعلا شما jsp فایل ها رو کنار WEB-INF بزار

hesampersian
شنبه 30 آذر 1387, 00:59 صبح
javaphantom جان واقعا ممنون، مشکل حل حل شد...