设置 Mac OSX 10.6.8,Apache Tomcat 6.0.16,Java1.6.0_29,Eclipse IDE Indigo。在JSP中调用Java方法
我问过类似的问题在此之前,在How to execute and include a Java API from a Web App project但成立以来在改变,我现在在WebAp Java代码
我试图从一个JSP页面和返回调用Java方法结果。我看了很多帖子,但恐怕我缺乏两种语言的使用经验是主要问题。
我有一个JSP WebAp,它搜索XML数据库并将内容返回给用户。我被要求集成额外的java代码来搜索预定义的网站并返回内容。
我有类似的代码周围发挥到了下面,但我想我在寻找别的东西
<%@ include file="/Applications/Tomcat/apache-tomcat-6.0.16/webapps/myWebApp/program.java" %>
谁能给我什么,我正在寻找一个更好的主意吗?
你也知道如果我必须在WebAp中编辑其他任何东西来连接这两个文件吗? WebINF文件夹中的类文件?
任何帮助是非常赞赏
Deepend
package sliceClient;
import java.util.List;
public class Run {
@Inject
private SliceSearcher sliceSearcher;
@Inject
private SliceCreator sliceCreator;
/**
* @param args
*/
public static void main(String[] args) {
Injector injector = Guice.createInjector(new GuiceInjector());
Run r = injector.getInstance(Run.class);
r.runSliceConsumer();
}
private void setSlicepediaProductionMode(boolean productionMode){
sliceSearcher.setProductionMode(productionMode);
sliceCreator.setProductionMode(productionMode);
}
public void runSliceConsumer() {
System.out.println("Starting Slice Consumer");
//Remove this line if the real slicepedia server is to be used
setSlicepediaProductionMode(true);
List<SliceHit> sliceHits = searchForSlices();
if (sliceHits == null) {
System.err.println("Timeout occurred while fetching slices");
return;
}
if (!sliceHits.isEmpty()) {
System.out.println("Found some slices Yuhuuuu ! :-) ");
String sliceContent = createSlices(sliceHits);
System.out.println("Slice content:");
System.out.println(sliceContent);
} else {
System.out.println("No Slices were found for this query");
}
System.out.println("Slice Consumer stopped activity");
}
private String createSlices(List<SliceHit> sliceHits) {
sliceCreator.setSliceHits(sliceHits);
if (sliceCreator.run()) {
SlicePackage slicePackage = sliceCreator.getNextSlicePackage();
return slicePackage.getSliceContent();
} else {
return sliceCreator.getErrorMessage();
}
}
private List<SliceHit> searchForSlices() {
SlicepediaQuery sliceQuery = new SlicepediaQuery();
sliceQuery.paramANNOTATION_READING_DIFFICULTY(new Double(30), "<");
//Works
// String dbConcept = "http://dbpedia.org/resource/human_rights";
// sliceQuery.paramANNOTATION_CONCEPT_FEATURE_HAS_DBPEDIA(dbConcept,0.5, ">");
// sliceQuery.paramHAS_NBR_OF_PARAGRAPHS(1,">");
// sliceQuery.paramIsAnOpenSlice(true);
// sliceQuery.paramHasNumberOfToken(80, ">");
sliceSearcher.setSliceQuery(sliceQuery);
if (sliceSearcher.run()) {
return sliceSearcher.getSliceHits();
} else {
return null;
}
}
}
托马斯嗨 首先,感谢您的回答。我将不得不采用丑陋的方式,因为我还没有接近前端控制器的方法。 但是我不确定你的答案的确切语法 <%= com.example.MyUtility.getSomething()%>的 我的Java文件称为“slicer.java” 它有一个主包称为“sliceClient” 我要援引“sliceCreate” 我想回到一个名为“sliceHit” 代码位于WEB-INF/clases/src目录 我已经试过 <%= session.sliceClient的变化串。 getsliceHit()%> 没有成功 与往常一样,任何帮助表示赞赏 深end – Deepend 2012-03-05 17:11:47
@Deepend恐怕你不得不向我们展示'slicer.java'的内容,你的命名和词汇在Java世界里有点混乱。我们不需要方法体,只需要签名(请将其添加到问题中,而不是作为评论)。从你在这里说的,也许尝试:'<%= sliceClient.sliceCreate()%>'... – 2012-03-05 17:28:08
我已经将代码添加到问题现在。由于我是StackOverFlow的新手,我不知道编辑原始问题是可以接受的。 感谢您的帮助提前 Deepend – Deepend 2012-03-05 17:46:00