使用Thymeleaf,我可以将TemplateEngine与UrlTemplateResolver一起使用但保留在当前线程中还是保留上下文?

时间:2017-12-20 10:27:59

标签: spring-mvc thymeleaf

我正在尝试渲染一个子片段,该子片段通过 Spring MVC控制器不直接呈现Thymeleaf视图模板

是否可以保留包含所有变量的上下文?不知何故?

现在我正在使用正在使用return templateEngine.process(url, context); // context contains all variables I need 处理URL的templateEngine而没有太大的运气。

processor

但是,即使在如上所述正确传递上下文时,它也会丢失,因为内部请求基本上由新线程处理。

从父currentLanguages传递任何数据到子视图(控制器)的唯一可能性是通过GET参数,但这对我来说不太理想,因为我有很多变量,如currentCountries,我需要在片段中使用public class MainActivity extends AppCompatActivity { WebView webView; SwipeRefreshLayout swipe; ProgressBar progressBar; private final String CACHE_URL_KEY = "CACHE_URL"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); progressBar = (ProgressBar) findViewById(R.id.awv_progressBar); swipe = (SwipeRefreshLayout) findViewById(R.id.swipe); LoadWeb(savedInstanceState); progressBar.setMax(100); progressBar.setProgress(1); swipe = (SwipeRefreshLayout) findViewById(R.id.swipe); swipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { webView.reload(); } }); webView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { progressBar.setProgress(progress); } }); webView.setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); progressBar.setVisibility(View.VISIBLE); } public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { webView.loadUrl("file:///android_asset/error.html"); } public void onPageFinished(WebView view, String url) { //Don't show ProgressBar progressBar.setVisibility(View.GONE); //Hide the SwipeRefreshLayout swipe.setRefreshing(false); } }); } @Override protected void onSaveInstanceState(Bundle outState ) { outState.putString(CACHE_URL_KEY,webView.getUrl()); super.onSaveInstanceState(outState); } public void LoadWeb(Bundle savedInstanceState) { webView = (WebView) findViewById(R.id.webView); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setAppCacheEnabled(true); if (savedInstanceState != null) { String savedUrl = savedInstanceState.getString(CACHE_URL_KEY); webView.loadUrl(savedUrl); }else { webView.loadUrl("https://www.google.com/"); } swipe.setRefreshing(true); } @Override public void onBackPressed() { if (webView.canGoBack()) { webView.goBack(); } else { finish(); } } 等。

是否有可能通过首先通过Spring MVC控制器但保留原始上下文来以某种方式呈现Thymeleaf片段?我完全理解为什么非本地URL需要新的线程和实际获取请求,但本地URL需要什么呢?

0 个答案:

没有答案