hi,
I don't understand why you are so suspicious about iFrame,
If you don't use GWT History support (you're to use JSP engine) the
only iframe tag generated in your page at runtime AND at client side
(sic!) will be frame containing your compiled javascript code but not
any markup (UI) elements,
here is example:
having html:
<html>
<head>
<title>Wrapper HTML for FlashTest</title>
<meta name='gwt:module'
content='com.google.code.swfobject.gwt.FlashTest'/>
<link type="text/css" rel='stylesheet' href='FlashTest.css'/>
</head>
<body>
<!-- examle existing markup -->
<div id="content">
<h2>Example page</h2>
<ul>
<li>
<a href="
http://www.google.com/" target="_self">Google home page</
a>
</li>
<li>
<a href="
http://groups.google.com/group/Google-Web-Toolkit/"
target="_self">Google Web Toolkit forum</a>
</li>
</ul>
</div>
<!-- gwt module source source -->
<script language="javascript"
src="com.google.code.swfobject.gwt.FlashTest.nocache.js"></script>
<div id="gwtapplication"></div>
</body>
</html>
(no history support) using a code:
RootPanel rootPanel = RootPanel.get("gwtapplication");
clickMeButton = new Button();
rootPanel.add(clickMeButton);
clickMeButton.setText("Click me!");
clickMeButton.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
Window.alert("Hello, GWT World!");
}
});
will generate:
<html><head><title>Wrapper HTML for FlashTest</title>
<meta name="gwt:module"
content="com.google.code.swfobject.gwt.FlashTest">
<link type="text/css" rel="stylesheet" href="FlashTest.css"></
head><body>
<!-- examle existing markup -->
<div id="content">
<h2>Example page</h2>
<ul>
<li>
<a href="
http://www.google.com/" target="_self">Google home page</
a>
</li>
<li>
<a href="
http://groups.google.com/group/Google-Web-Toolkit/"
target="_self">Google Web Toolkit forum</a>
</li>
</ul>
</div>
<!-- gwt module source source -->
<script language="javascript"
src="com.google.code.swfobject.gwt.FlashTest.nocache.js"></script>
<script src="
http://localhost:8888/
com.google.code.swfobject.gwt.FlashTest/
com.google.code.swfobject.gwt.FlashTest.nocache.js?compiled"></script>
<script>com_google_code_swfobject_gwt_FlashTest.onInjectionDone('com.google.code.swfobject.gwt.FlashTest')</
script>
<div id="gwtapplication">
<button class="gwt-Button" type="button">Click me!</button>
</div>
<iframe src="
http://localhost:8888/
com.google.code.swfobject.gwt.FlashTest/
945E0D25E0E8B23A9E171050A109B458.cache.html" style="border: medium
none ; position: absolute; width: 0pt; height: 0pt;"
id="com.google.code.swfobject.gwt.FlashTest"></iframe>
</body>
</html>
now try using navigation in that page and you will see it will work I
think,
in your case you should use custom markup generated as subclasses of
UIObject instead of Widget (GWT Tookit ui elements are based on Widget
and by default sinks events),
you don't have any form as I understand, simply use RequestBuilder
with POST request and custom params to your serlvet,
regards,
Peter